windowFormsHost控件在一个位置时会优先显示,而且完全设置不了顺序,永远在最上边,WPF原生的控件无法对其遮盖,更别说透明了
四、解决WindowFormsHost的置顶问题
经过层层排除和筛选,最终找到一个可行方案:Microsoft.DwayneNeed
。
- 访问:Microsoft.DwayneNeed下载源码: https://microsoftdwayneneed.codeplex.com
- 使用VS打开Microsoft.DwayneNeed.sln解决方案,完成编译
- 在WPF项目中添加
Microsoft.DwayneNeed.dll
引用 - 在xaml中添
xml
<xmlns:interop=clr-namespace:Microsoft.DwayneNeed.Interop;assembly=Microsoft.DwayneNeed>
</xmlns>
在xaml中使用AirspaceDecorator包裹WindowsFormsHost
完整例子如下
xml
<airspace:AirspaceDecorator AirspaceMode="Redirect" IsInputRedirectionEnabled="True" IsOutputRedirectionEnabled="True">
<WindowsFormsHost Name="FormsHost">
<winform:WebBrowser>
</WindowsFormsHost>
</airspace:AirspaceDecorator>