当前位置: 代码网 > it编程>编程语言>C# > C# wpf嵌入winform控件的示例详解

C# wpf嵌入winform控件的示例详解

2024年05月15日 C# 我要评论
前言wpf的强大界面能力,再加上winform的性能以及灵活性,那基本上什么界面都能够做的很好。比如视频渲染用winform,功能按键用wpf,就能达到性能和界面效果和完美结合。wpf有直接的控件支持

前言

wpf的强大界面能力,再加上winform的性能以及灵活性,那基本上什么界面都能够做的很好。比如视频渲染用winform,功能按键用wpf,就能达到性能和界面效果和完美结合。wpf有直接的控件支持嵌入winform控件,使用方法也很简单,网上很容易搜到。之所以编写这篇文章,主要用于记录。

一、导入winform

1、.net framwork

(1)、右键添加引用

(2)、勾选程序集

2、.net 6.0^

.net core导入比较简单,笔者使用的是.net 6.0,其他版本应该类似。

(1)、打开项目属性

(2)、勾选启用windows窗体

二、引用命名空间

注:window其他属性略。

<window xmlns:wf="clr-namespace:system.windows.forms;assembly=system.windows.forms" />

三、使用 windowsformshost

1、直接xaml中使用

添加一个winform的textbox

<window x:class="wpfapp6.mainwindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:wpfapp6"
        xmlns:wf="clr-namespace:system.windows.forms;assembly=system.windows.forms"
        mc:ignorable="d"
        title="mainwindow" height="450" width="800">
    <grid>
        <windowsformshost width="400" height="100" >
            <wf:textbox backcolor="255,192,192,192" />
        </windowsformshost>
    </grid>
</window>

效果预览

2、后台设置

mainwindow.xaml

<window x:class="wpfapp6.mainwindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:wpfapp6"
        xmlns:wf="clr-namespace:system.windows.forms;assembly=system.windows.forms"
        mc:ignorable="d"
        title="mainwindow" height="450" width="800">
    <grid>
        <windowsformshost x:name="wf_test" width="400" height="100">         
        </windowsformshost>
    </grid>
</window>

mainwindow.xaml.cs

注:对于.net framework下列还需要引用system.drawing程序集

using system.windows;
namespace wpfapp6
{
    /// <summary>
    /// mainwindow.xaml 的交互逻辑
    /// </summary>
    public partial class mainwindow : window
    {
        public mainwindow()
        {
            initializecomponent();
            var tb = new system.windows.forms.textbox();
            tb.backcolor= system.drawing.color.royalblue;
            tb.forecolor = system.drawing.color.white;
            tb.font = new system.drawing.font("",24);
            wf_test.child = tb;
        }
    }
}

总结

wpf对winform的嵌入支持还是比较好的,可以直接在xaml使用winform控件,同时也可以在后台代码设置,将winform项目加入到wpf中几乎没什么阻碍,唯一的问题就是winform控件会覆盖wpf控件。

到此这篇关于c# wpf嵌入winform控件的示例详解的文章就介绍到这了,更多相关wpf嵌入winform控件内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com