欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WPF 嵌入Winform GDI 、 开启AllowsTransparenc问题

程序员文章站 2022-10-05 16:18:43
此文章可以解决2至少2个问题: 1.开启AllowsTransparenc造成的GDI+组件不显示问题 2.WPF 组件无法覆盖嵌入WPF窗口的任何第三方GDI+组件上层 方案1:自制双层 原理:用一个新的窗口来承载GDI+组件,实现 父窗口 拖动、缩放、最小化、最大化 的联动 事件。缺点:电脑性能 ......

此文章可以解决2至少2个问题:

1.开启AllowsTransparenc造成的GDI+组件不显示问题

2.WPF 组件无法覆盖嵌入WPF窗口的任何第三方GDI+组件上层

 

方案1:自制双层

原理:用一个新的窗口来承载GDI+组件,实现 父窗口 拖动、缩放、最小化、最大化 的联动 事件。
缺点:电脑性能太差会出现重影。

方案2:微软解决空域的方案

原理:用一个新的窗口来承载GDI+组件,实现 父窗口 拖动、缩放、最小化、最大化 的联动 事件。
缺点:电脑性能太差会出现重影。

<interop:AirspaceDecorator AirspaceMode="Redirect"
              Background="{DynamicResource WhiteColorBrush}"
              IsInputRedirectionEnabled="True"
              IsOutputRedirectionEnabled="True">
          <WebBrowser x:Name="WebBrowser" />
</interop:AirspaceDecorator>