我正在开发一个打开并显示 XPS 文档的 WPF 应用程序。当应用程序关闭时,规范是应用程序应删除打开的 XPS 文档以进行清理。但是,当打开某个 XPS 文档时,应用程序会在尝试删除该文件时抛出该文件仍在使用中的异常。这有点奇怪,因为它仅在打开特定的 XPS 文档时发生,并且仅在您超出第一页时才会发生。
我使用的一些代码如下所示:
打开 XPS 文档:
DocumentViewer m_documentViewer = new DocumentViewer();
XpsDocument m_xpsDocument = new XpsDocument(xpsfilename, fileaccess);
m_documentViewer.Document = m_xpsDocument.GetFixedDocumentSequence();
m_xpsDocument.Close();
导航 XPS 文档:
m_documentViewer.FirstPage();
m_documentViewer.LastPage();
m_documentViewer.PreviousPage();
m_documentViewer.NextPage();
关闭 DocumentViewer 对象并删除文件:
m_documentViewer.Document = null;
m_documentViewer = null;
File.Delete(xpsfilename);
这一切都非常基本,并且可以与我们测试的其他文档一起使用。但是对于特定的 XPS 文档,会弹出一个异常,指出要删除的文件仍在使用中。
我的代码有什么问题或遗漏吗?
谢谢!