WPF WindowFormsHost取消始终置顶的有效解决方案

一、WinForm WindowsFormsHost 调用

1、引用

我们需要向项目中的引用(reference)中添加两个动态库dll,一个是.NET库中的System.Windows.Forms,另外一个是WindowsFormsIntegration

1
2
xmlns:host="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"

2、XAML

1
2
3
4
5
6
<WindowsFormsHost x:Name="gridHost" Panel.ZIndex="0" MinHeight="400" MinWidth="700" Margin="0" Padding="0">
    <WindowsFormsHost.Background>
        <ImageBrush ImageSource="pack://application:,,,/images/defaultfrg.png"/>
    </WindowsFormsHost.Background>
    <wf:Panel x:Name="localVideo" Height="400" Width="705"/>
</WindowsFormsHost>

  

二、WindowsFormsHost取消始终置顶的有效解决方案

1、引用

需要引用的(dll)组件下载,Microsoft.DwayneNeed.zip

1
xmlns:interop="clr-namespace:Microsoft.DwayneNeed.Interop;assembly=Microsoft.DwayneNeed"

2、XAML

1
2
3
4
5
6
7
8
<interop:AirspaceDecorator AirspaceMode="Redirect" IsInputRedirectionEnabled="True" IsOutputRedirectionEnabled="True">
    <WindowsFormsHost x:Name="gridHost" Panel.ZIndex="0" MinHeight="400" MinWidth="700" Margin="0" Padding="0">
        <WindowsFormsHost.Background>
            <ImageBrush ImageSource="pack://application:,,,/images/defaultfrg.png"/>
        </WindowsFormsHost.Background>
        <wf:Panel x:Name="localVideo" Height="400" Width="705"/>
    </WindowsFormsHost>
</interop:AirspaceDecorator>

 

方案二,使用Popup

Popup 作为最上层,此方法跟随Window移动难控制

 

posted @   microsoft-zhcn  阅读(1806)  评论(3编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
点击右上角即可分享
微信分享提示