【发布时间】:2012-09-27 16:33:53
【问题描述】:
我目前正在考虑一个想法,但我遇到了障碍。我正在使用控制台应用程序在内存中创建视觉控件(准确地说是 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;
}
【问题讨论】:
标签: wpf image wpf-controls rendering visualbrush