WinformHost面板中的WPF窗口
本文关键字:WPF 窗口 WinformHost | 更新日期: 2023-09-27 18:11:58
我在使用winform主机的另一个WPF应用程序中显示了一个WPF exe窗口。
我在主应用程序中创建了一个面板,并将其设置为winformhost的子面板。
mHostingPanel = new System.Windows.Forms.Panel()
{
BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
};
mWinformHost = new WindowsFormsHost();
mWinformHost.Child = mHostingPanel;
,然后我启动另一个窗口进程,并设置宿主面板为父。
WindowsAPI.SetParent(mProcess.MainWindowHandle, mHostingPanel.Handle);
我的问题是,如果我启动应用程序,谁将渲染我的孩子WPF窗口,其父是一个winform面板。它是Panel的Direct-X还是GDI上下文?
如果我设置Allowtransparency=True在子WPF应用程序,UI不显示在主机面板
找到原因了。它被称为空域问题(当win32和WPF试图共享像素时),我认为它不能通过任何框架API来解决,因为微软否认了这一点。https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2644120-bring-back-the-hwndhost-isredirected-and-compositi
缓解空域问题