У меня есть DocumentViewer с fixedDocument (созданный в XAML), затем я добавляю контент в fixedDocument в коде, и он отлично отображается на экране.
Моя проблема в том, что когда я пытаюсь создать файл XPS из fixedDocument, я получаю ошибку «это уже дочерний элемент другого элемента».
Не могу найти метод DocumentViewer.Children.Clear. Как удалить / отсоединить fixedDocument, чтобы я мог использовать его для создания файла?
для полноты, вот код, где я получаю ошибку:
public void CreateXPSFile()
{
// 1 - create xps_file
string OutputPath = baseDir + pathAdjust + "test.xps";
using (FileStream fs = File.Create(OutputPath))
{
ConvertToXps(fixedDocument, fs);
}
// open the document using the system default xps viewer
Process.Start(OutputPath);
}
public static void ConvertToXps(FixedDocument fd, Stream outputStream)
{
var package = Package.Open(outputStream, FileMode.Create);
var xpsDoc = new XpsDocument(package, CompressionOption.Normal);
XpsDocumentWriter xpsWriter = XpsDocument.CreateXpsDocumentWriter(xpsDoc);
// xps documents are built using fixed document sequences
var fixedDocSeq = new FixedDocumentSequence();
var docRef = new DocumentReference();
docRef.BeginInit();
docRef.SetDocument(fd);
docRef.EndInit();
((IAddChild)fixedDocSeq).AddChild(docRef); <<<<<----- Error occurs here
// write out our fixed document to xps
xpsWriter.Write(fixedDocSeq.DocumentPaginator);
xpsDoc.Close();
package.Close();
}
Спасибо