2016-05-12 3 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

У меня была такая же проблема с использованием оксиплота. Я пытался экспортировать изображение в файл, но он работал только тогда, когда я сначала показывал его на экране. Чтобы заставить его работать, вам необходимо будет определить всю модель программно и привязать модель к xaml. Таким образом вам не придется проходить через представление для экспорта правильно. – Jose

ответ

2

У меня была такая же проблема с использованием oxyplot. Я пытался экспортировать изображение в файл, но он работал только тогда, когда я сначала показывал его на экране. Чтобы заставить его работать, вам необходимо будет определить всю модель программно и привязать модель к XAML. Таким образом вам не придется проходить через представление для экспорта правильно.

Смежные вопросы