在WPF中为WindowsFormsHost控件添加透明背景

时间:2011-11-27 17:37:31

标签: c# wpf windowsformshost

我正在使用WindowsFormsHost在我的WPF应用程序中添加Windows窗体控件,但我意识到WinForms控件不能具有透明背景而不设置此处How to: Give Your Control a Transparent Background中的样式。如何在WPF中完成?

BTW,我正在使用C#和.net 4.0。

感谢。

1 个答案:

答案 0 :(得分:2)

我认为你不能这样做。您提供的链接实际上是关于能够将BackColor设置为透明。当发生这种情况时,WinForms控件(在其绘制后台处理中)获取Parent Control并调用其PaintBackground和Paint方法。虽然你的控件将有一个父窗口 - WindowsFormsHost将创建的控件 - 该控件不会,因此没有任何东西可以绘制背景。在Win32世界中,可能会设置WS_EX_TRANSPARENT位,但会引入各种问题,我怀疑它甚至可能无法根据WPF的工作原理进行操作。我会查看MSDN主题(例如Technology Regions OverviewWindowsFormsHost interop),讨论WPF与其他技术之间互操作的各种空域问题。