Частично перепутал отображаемый контент DocumentViewer после загрузки другого файла XPS с тем же именем, что и предыдущий - PullRequest
0 голосов
/ 29 сентября 2019

Если DocumentViewer (WPF Control) отображает файл XPS в первый раз после запуска моего приложения, все в порядке!
Но если DV загрузил другой файл с тем же именем в качестве предыдущего файла, отображаемое содержимое будет некорректным,Некоторые изображения не соответствуют оригиналу, но они взяты из ранее загруженного файла. Я трачу много времени на решение этой проблемы, но мне это не удалось.

Похоже, что объект DV или XPSDocument имеет «кэш». И мне нужно стереть его перед загрузкой следующего файла XPS.

Вот мой код для загрузки файла XPS в моем приложении:

public static void nacitajXPS(String pXpsPath, DocumentViewer pDV)
{
    FileInfo XPS_FI = new FileInfo(pXpsPath);
    if (XPS_FI.Exists && XPS_FI.Length > 0)
    {
        pDV.Document = null;
        using (XpsDocument pXpsDoc = new XpsDocument(XPS_FI.FullName, FileAccess.Read, CompressionOption.NotCompressed))
        {

            pDV.Document = pXpsDoc.GetFixedDocumentSequence();

            pDV.FitToHeight();

            var theXpsPackage = System.IO.Packaging.PackageStore.GetPackage(pXpsDoc.Uri);

            if (theXpsPackage != null)
            {
                theXpsPackage.Close();
                System.IO.Packaging.PackageStore.RemovePackage(pXpsDoc.Uri);
            }

            theXpsPackage = null;
            pXpsDoc.Close();
            CESTY_DISK.PRAC_INSTRUKCIA_XPS.Delete();
        }
    }
}
...