У меня проблема: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();
Когда я навигации пользовательский интерфейс, который я могу увидеть сюжет: функция сохранения вернуться к правильное поведение. Исключений нет, сюжет имеет мои данные для построения непосредственно перед сохранением.
Пожалуйста, помогите ...
Код ваших сюжетов исключительно на XAML или вы их программно генерируете? – Jose
Это просто на XAML, но, как я писал, все данные уже привязаны к сюжету в момент попытки функции SaveImage(). –
У меня была такая же проблема с использованием оксиплота. Я пытался экспортировать изображение в файл, но он работал только тогда, когда я сначала показывал его на экране. Чтобы заставить его работать, вам необходимо будет определить всю модель программно и привязать модель к xaml. Таким образом вам не придется проходить через представление для экспорта правильно. – Jose