我現在正在玩弄一個想法,並且碰到了一堵磚牆。我正在使用一個控制檯應用程序在內存中創建一個可視化控件(DevExpress chartcontrol),然後我試圖使用VisualBrush將該控件保存到圖像,但它不起作用,因爲(我認爲)控件沒有畫到屏幕上。使用未呈現的控件的可視化畫筆?
我把我的代碼放在下面,所以你知道我現在在哪裏。有誰知道我可以如何使用控制檯應用程序將此控件保存到圖像(最好是jpg,但任何操作都可以)?我真的不希望有它呈現在屏幕上,甚至一毫秒只是爲了能夠保存它...
static void sl_CreateDetail(FrameworkElement chartControl1, CreateAreaEventArgs e)
{
var brush = new VisualBrush(chartControl1);
var visual = new DrawingVisual();
DrawingContext context = visual.RenderOpen();
context.DrawRectangle(brush, null,
new Rect(0, 0, chartControl1.ActualWidth, chartControl1.ActualHeight));
context.Close();
var bmp = new RenderTargetBitmap((int)chartControl1.ActualWidth,
(int)chartControl1.ActualHeight, 96, 96, PixelFormats.Pbgra32);
bmp.Render(visual);
e.Data = bmp;
}
我做了測量/安排,它沒有工作。我已經有STA線程的東西。我不得不快速改變我的方法,以便爲小型演示工作。我會盡快改變我的做法,儘快嘗試您的全面建議(在接下來的幾天內)。 – Faraday