2010-11-29 37 views

回答

3

如果您希望WPF和Windows窗體內容共享相同的窗口,沒有解決方法。

WPF通過Direct3D渲染,而Windows窗體使用GDI +,它最終基於舊的GDI32渲染機制。 Windows本身並沒有提供一種方法來使用這兩種不同的技術渲染到窗口的同一區域 - 最終得到由Direct3D擁有並呈現的HWND(由WPF使用)以及由Windows擁有並呈現的不同HWND形式。這些HWND在它們之間的包含窗口中分割空間並且不能重疊。

如果你想重疊的WPF和Windows窗體內容,唯一支持的方式做到這一點就是把它們放在不同的頂級窗 - 可確實支持在桌面級重疊的Win32和Direct3D內容。您可以使用每像素透明度來製作非矩形窗口(在WPF或Windows窗體中)。因此,您可以關閉WPF應用程序中的所有窗口邊框,並使背景透明,如果您啓用了透明度,則可以將該窗口放置在屏幕上與Windows窗口完全相同的位置,在此時您現在可以在Windows窗體內容上添加WPF內容。

不用說,這是一個乏味的事情。但不幸的是,如果您真的需要在Windows窗體內容上使用WPF內容,那麼您需要做的就是 - 您需要將WPF內容放在單獨的窗口中。

相關問題