Как я могу получить DocumentViewer WPF для снятия блокировки файла на исходном документе XPS?

После отображения файла XPS в WPF DocumentViewer и закрытия экземпляра DocumentViewer файл XPS заблокирован, и я не могу его удалить. Мне нужно снять блокировку файла XPS, чтобы я мог удалить его, написать другой файл с тем же именем и при желании отобразить этот новый файл XPS в новом экземпляре DocumentViewer. Мне нужно сделать это в том же экземпляре приложения - без необходимости закрывать приложение (это сценарий предварительного просмотра).

Другими словами, как заставить следующий код работать без исключения в «File.Delete (tempXpsFile)»; заявление?

var tempXpsFile = @"c:\path\to\Temporary.xps";

var previewWindow = new Window();
var docViewer = new DocumentViewer();
previewWindow.Content = docViewer;

GenerateXpsFile(tempXpsFile);

var xpsDocument = new XpsDocument(tempXpsFile);

previewWindow.ShowDialog();

File.Delete(tempXpsFile);  //this will throw an exception due to a file lock on tempXpsFile

GenerateXpsFile(tempXpsFile); //assume this generates a different file
//otherwise the scenario doesn't make sense as we could just skip the above delete
//and this statement and re-use the same file

previewWindow = new Window();
docViewer = new DocumentViewer();
previewWindow.Content = docViewer;

previewWindow.ShowDialog();

Закрытие приложения снимает блокировку файла, как указано вWPF DocumentViewer не выпускает файл XPS, но это не вариант в этом сценарии.

Ответы на вопрос(2)

Ваш ответ на вопрос