Best Practics to hide all annots in WPF viewer

Hello support,

i have a question about the posibilites to hide all annotation from the pdfdoc in the wpf viewer. In the moment i have a derivate class which implement to async methods.

Task HideAllAnnotations()
{
return Task.Run(() =>
{
var pageCount = GetPageCount();
for (var i = 1; i <= pageCount; i++)
{
var page = GetPage(i);
var annotCount = page.GetNumAnnots();
for (var j = 0; j < annotCount; j++)
{
var annot = page.GetAnnot(j);
if (!annot.IsValid() || annot.GetFlag(Annot.Flag.e_hidden)) continue;
annot.SetFlag(Annot.Flag.e_hidden, true);
_hiddenAnnots.Add(annot);
}
}
});
}

and

Task ShowAllAnnotations()
{
return Task.Run(() =>
{
foreach (var annot in _hiddenAnnots)
{
if (annot.IsValid())
annot.SetFlag(Annot.Flag.e_hidden, false);
}
});
}

I_hiddenAnnots is a List object. Before i set the open document to the viewer i call HideAnnots and in a override Dispose methode i use ShowAllAnnotation to change the changes back. Is there any way to implement a best way in the viewer (bool property IsAnnotsVisible or a method ShowAnnots()/HideAnnots()) without a hack the document class? The Problem is when i call annot.SetFlag(…) and close the document without call Save() all annots are invisible! So i write a recall method to set all annots visible! Maybe it is a bug? So what are the best practicse to hide alle document annots in the wpf viewer withput block the gui thread?

Thanks
Daniel

Hi Daniel,

It sounds to me that what you are looking for is PDFViewWPF.SetDrawAnnotations(bool render_annots).
Please let us know if this is not the case.

Best Regards,
Tomas Hofmann