GDI渲染到WPF窗口

Ari*_*ulp 4 wpf gdi hwnd

我做了一些搜索,但我找不到一个确切的答案.在我的C#WPF应用程序中,我获得了HWND指针并将其传递给C dll.然后,C dll尝试使用GDI调用在窗口上呈现排序叠加.没有错误,但没有出现任何错误.如果我切换到Windows窗体,该DLL可以很好地渲染它.如果我托管一个WindowsFormHost控件并使用那里的hwnd我有相同的效果.我已经看到了关于HwndHost控件的信息,但它看起来并不像我想要的那样.也许对这种控制有更多了解的人可以用不同的方式告诉我.我在某处读到用于DirectX渲染的hwnd(如WPF)也不能使用GDI.这会让我的场景变得不可能吗?我可以通过在WPF窗口上覆盖无边框形式来伪造它,但显然这不会太漂亮.有什么想法或想法吗?

Rob*_*evy 5

你不能将WPF和GDI渲染到同一个hwnd,但是你可以很容易地在你的WPF应用程序中有一个子hwnd并让GDI渲染到它中.看看HwndHost这样做.在"托管微软的Win32窗口在WPF"一节这篇文章有更多一点的细节.它还讨论了在进行此类互操作时遇到的各种问题(如空域).