1

我正在使用 WindowsFormsHost 在我的 WPF 应用程序中添加一个 Windows Forms 控件,但我意识到 WinForms 控件不能具有透明背景,如果不设置样式,如下所示如何:为您的控件提供透明背景。这将如何在 WPF 中完成?

顺便说一句,我正在使用 C# 和 .net 4.0。

谢谢。

4

1 回答 1

2

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

于 2011-11-28T12:36:37.023 回答