2016-05-12 139 views
3

我有以下問題:OxyPlot WPF在後臺生成圖像

我有一個在我的棱鏡視圖之一的情節。我的目標是從我的應用程序生成報告,其中包括生成的OxyPlot圖表。我用下面的線的情節保存到圖片:

plot.SaveBitmap(fileName, 960, 540, OxyColor.FromRgb(255, 255, 255)); 

,當我試圖保存位圖沒有以前看到的用戶界面的情節出現問題。在這種情況下,我只能得到空白圖,正確大小但沒有內容的白色位圖。沒有軸,沒有標題(位圖只是空白)。當我使用函數來生成XAML而不是Bitmap時,結果是一樣的:根本沒有內容。

我也注意到,當繪圖保存時,繪圖的寬度和高度都設置爲0。在保存功能之前設置此值不會更改結果文件。

我曾嘗試之前保存圖像以下代碼:

plot.InvalidatePlot(); 

甚至:

plot.InvalidatePlot(); 

Action emptyAction = delegate { }; 
plot.Dispatcher.Invoke(DispatcherPriority.Render, emptyAction); 

plot.InvalidatePlot(); 

當我瀏覽用戶界面,我可以看到的情節:保存功能回來正確的行爲。沒有例外,情節有我的數據在保存之前繪製。

請幫忙...

+0

您的圖的代碼純粹是在XAML上,還是以編程方式生成它們? – Jose

+0

它完全依賴於XAML,但是由於我在寫入SaveImage()函數時已將所有數據都附加到了圖上。 –

+1

我有使用oxyplot相同的問題。我試圖將圖像導出到一個文件,但它只在我首先在屏幕上顯示它時才起作用。爲了使它工作,您將不得不以編程方式定義所有模型,並將模型綁定到xaml。這樣你就不必通過視圖來正確導出。 – Jose

回答

2

我有使用oxyplot相同的問題。我試圖將圖像導出到一個文件,但它只在我首先在屏幕上顯示它時才起作用。爲了使它工作,您將不得不以編程方式定義所有模型,並將模型綁定到XAML。這樣你就不必通過視圖來正確導出。