Если 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();
}
}
}