私はfixedDocument(XAMLで構築された)を持つDocumentViewerを持っています。次に、コード内のfixedDocumentにコンテンツを追加して、画面上に完全なものを表示します。DocumentViewerからFixedDocumentを削除するには?
私の問題は、fixedDocumentからXPSファイルを作成しようとしたときです。私は 'すでに別の要素の子です'というエラーが発生しました。
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();
}
おかげ