我现在正在玩一个想法,但我遇到了砖墙。我正在使用控制台应用程序在内存中创建视觉控件(准确地说是 DevExpress 图表控件),然后我尝试使用 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;
}