那些年,在 .net 里踩过的坑

WPF 与 WinForm 混用

AllowsTransparency & WindowsFormsHost

WPF 启用窗体透明(AllowsTransparency="true") 后, WindowsFormsHost 的内容不可见。

原因

这是一个 Win32 的限制。

使用 WS_EX_LAYEREDUpdateLayeredWindow() 的分层窗体不支持子窗体。

要支持子窗口需要使用不变的不透明度 (WS_EX_LAYERED and SetLayeredWindowAttributes()) 。

解决方法

一个较好的解决方案,见 webbrowser-control-on-transparent-wpf-window

感谢 Fredrik Hedblad

More