如何在不创建窗口的情况下将WPF UserControl渲染为位图

如何在不创建窗口的情况下将WPF UserControl渲染为位图?我需要呈现一个WPF

UserControl并将其上传到另一个程序。位图将通过Windows服务呈现,因此创建窗口不是一种选择(我知道有“虚拟”创建窗口的方法,但是不幸的是,在我的情况下,任何调用命令来创建窗口的方法都不是一种选择)。有没有一种方法可以将UserControl渲染而不将其绑定到Window?

回答:

最终使用没有实际窗口的HwndHost。

void cwind()

{

Application myapp = new Application();

mrenderer = new WPFRenderer();

mrenderer.Width = 256;

mrenderer.Height = 256;

HwndSourceParameters myparms = new HwndSourceParameters();

HwndSource msrc = new HwndSource(myparms);

myparms.HwndSourceHook = new HwndSourceHook(ApplicationMessageFilter);

msrc.RootVisual = mrenderer;

myapp.Run();

}

static IntPtr ApplicationMessageFilter(

IntPtr hwnd, int message, IntPtr wParam, IntPtr lParam, ref bool handled)

{

return IntPtr.Zero;

}

以上是 如何在不创建窗口的情况下将WPF UserControl渲染为位图 的全部内容, 来源链接: utcz.com/qa/400921.html

回到顶部