我正在使用WindowsFormsHost在我的WPF应用程序中添加Windows窗体控件,但我意识到WinForms控件不能具有透明背景而不设置样式,如在这里如何:给你的控件一个透明背景。在WPF中如何做到这一点?
顺便说一句,我正在使用c#和。net 4.0。
谢谢。
我认为你做不到。你提供的链接实际上是关于如何将BackColor设置为Transparent。当这种情况发生时,WinForms控件(在其绘制背景处理中)获得父控件并调用其PaintBackground和paint方法。虽然您的控件将有一个父控件- WindowsFormsHost将创建的控件-该控件不会,因此将没有任何内容来绘制背景。在Win32世界中,可以设置WS_EX_TRANSPARENT位,但这会引入各种各样的问题,我怀疑它甚至可能无法基于WPF的工作方式工作。我会查看MSDN主题(例如技术区域概述和WindowsFormsHost互操作),讨论WPF与其他技术之间互操作的各种空域问题。