2015-05-07 54 views
0

我想從WPF應用程序(C#,MVVM)將內容導出到XPS。 我有一堆對象和每一個對象包含的圖像(類型= BitmapFrame),其使用源顯示的屬性:XPS從WPF導出 - 僅導出一個圖像

<Image Source="{Binding BusinessUnit.Picture}" /> 

所有那些對象被放置在稱爲GraphCanvas控制。每張照片都會被加載並正確顯示在屏幕上。

當使用出口代碼:

  using (var package = Package.Open(saveFileDialog.FileName, FileMode.Create)) 
      { 
       var xpsDocument = new XpsDocument(package); 

       var writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument); 

       writer.Write(GraphCanvas.ExportCanvas); 

       xpsDocument.Close(); 
      } 

一切,除了圖像的正常出口。只有一個圖像被導出(並且在瀏覽XPS結構時在資源文件夾中可用),並且該圖像被用作應該導出的每個其他圖像的替換。

什麼可能是所有其他圖像未導出的原因?

+0

你看看GraphCanvas.ExportCanvas給你看看它是否具有所有圖像嗎? – Will

回答

0

打印多頁的時候,我遇到了類似的問題,最終我不得不重複在頁面每個項目做到這一點:

fwElement.Arrange(new Rect(new Size(fwElement.ActualWidth, fwElement.ActualHeight))); 

因爲你只有單一的元素,這可能會爲你工作:

GraphCanvas.ExportCanvas.Measure(GraphCanvas.ExportCanvas.RenderSize); 
GraphCanvas.ExportCanvas.Arrange(new Rect(new Size(GraphCanvas.ExportCanvas.ActualWidth, GraphCanvas.ExportCanvas.ActualHeight))); 
writer.Write(GraphCanvas.ExportCanvas);