我正在使用WindowsFormsHost在我的WPF应用程序中添加Windows窗体控件,但我意识到WinForms控件不能具有透明背景而不设置此处How to: Give Your Control a Transparent Background中的样式。如何在WPF中完成?
BTW,我正在使用C#和.net 4.0。
感谢。
答案 0 :(得分:2)
我认为你不能这样做。您提供的链接实际上是关于能够将BackColor设置为透明。当发生这种情况时,WinForms控件(在其绘制后台处理中)获取Parent Control并调用其PaintBackground和Paint方法。虽然你的控件将有一个父窗口 - WindowsFormsHost将创建的控件 - 该控件不会,因此没有任何东西可以绘制背景。在Win32世界中,可能会设置WS_EX_TRANSPARENT位,但会引入各种问题,我怀疑它甚至可能无法根据WPF的工作原理进行操作。我会查看MSDN主题(例如Technology Regions Overview和WindowsFormsHost interop),讨论WPF与其他技术之间互操作的各种空域问题。