wpf使用winform自定义控件(代码片段)

guhuazhen guhuazhen     2023-04-16     414

关键词:

在WPF的用户控件中使用Winfrom自定义控件的过程:

1、添加引用

WindowsFormsIntegration.dll

System.Windows.Forms.dll

2、在要使用WinForm控件的WPF窗体的XAML文件中添加如下内容:

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

如下图所示:

技术图片

 

 

 

 

3、 在WPF的容器控件内如StackPanel内首先要添加WinForm控件的宿主容器,用于衔接WPF和WinForm,

对应XAML如下:

说明:<wfi:WindowsFormsHost></wfi:WindowsFormsHost>即为WinForm控件的宿主容器,每一个宿主容器只能放一个WinForm控件,如下例,放了三个WinForm控件,分别放在三个宿主容器里面,该容器可以设置属性来调整大小和布局

注意:如上我添加的WinForm控件如在指定其Name时,必须加前缀x:,如添加Lable时<wf:Label x:Name="wpfLabel" Text="我是WPF中的WinForm控件” />,否则后台代码无法访问。

<local:UserControl1 Name="Header" Width="319" Height="30"></local:UserControl1>这个为Winform自定义控件。


<StackPanel>
  <wfi:WindowsFormsHost>
    <local:UserControl1 Name="Header" Width="319" Height="30"></local:UserControl1>
  </wfi:WindowsFormsHost>    
  <wfi:WindowsFormsHost>  
    <wf:Label x:Name="wfLabel" Text="winForm控件在此" />     
  </wfi:WindowsFormsHost>
</StackPanel>

4、 如果要在WPF后台代码中访问上面的Lable,可直接像在WinForm中使用一样。

 

ok,今天的分享就到这里了,有疑问欢迎指导。

将 WPF 控件与 WinForms 一起使用

】将WPF控件与WinForms一起使用【英文标题】:UsingaWPFControlwithWinForms【发布时间】:2021-05-2818:48:39【问题描述】:我有一个自定义的WPF按钮控件,我想将此控件与WinForm应用程序一起使用。我知道如何使用ElementHost将WPF用户控件与Win... 查看详情

[wpf自定义控件库]自定义控件的代码如何与controltemplate交互(代码片段)

1.前言WPF有一个灵活的UI框架,用户可以轻松地使用代码控制控件的外观。例设我需要一个控件在鼠标进入的时候背景变成蓝色,我可以用下面这段代码实现:protectedoverridevoidOnMouseEnter(MouseEventArgse)base.OnMouseEnter(e);Background=newSolidCo... 查看详情

wpf自定义控件の自定义控件(代码片段)

原文:WPF自定义控件(四)の自定义控件在实际工作中,WPF提供的控件并不能完全满足不同的设计需求。这时,需要我们设计自定义控件。这里LZ总结一些自己的思路,特性如下:CouplingUITemplateBehaviourFunctionPackage下面举例说说在项... 查看详情

wpf自定义控件の重写原生控件样式模板(代码片段)

...办呢?----自定义样式与模板。一、样式在WPF中我们可以使用Style来设置控件的某些属 查看详情

wpf自定义控件(代码片段)

原文:WPF自定义控件封装了一个选择年月的控件,XAML代码:<UserControlx:Class="SunCreate.CombatPlatform.Client.DateMonthPicker"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsof 查看详情

[wpf自定义控件]从contentcontrol开始入门自定义控件(代码片段)

原文:[WPF自定义控件]从ContentControl开始入门自定义控件1.前言我去年写过一个在UWP自定义控件的系列博客,大部分的经验都可以用在WPF中(只有一点小区别)。这篇文章的目的是快速入门自定义控件的开发,所以尽量精简了篇幅... 查看详情

wpf使用皮肤影响按钮自定义(代码片段)

在WPF项目中使用了Theme的皮肤后,发现自定义的按钮全部都是皮肤里面的样式,如下图:要自定义样式,只有不给按钮使用皮肤样式。如果想给某一个控件使用样式,在前端Xaml的控件中,设置一下属性即可:dx:ThemeManager.ThemeName="... 查看详情

wpf自定义放大镜控件(代码片段)

控件名:Magnifier作 者:WPFDevelopersOrg-驚鏵原文链接[1]:https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40;VisualStudio2019;实现此功能需要用到VisualBrush,放大镜展现使用Canvas->Ellip 查看详情

[wpf自定义控件]在menuitem上使用radiobutton(代码片段)

原文:[WPF自定义控件]在MenuItem上使用RadioButton1.需求#上图这种包含多选(CheckBox)和单选(RadioButton)的菜单十分常见,可是在WPF中只提供了多选的MenuItem。顺便一提,要使MenuItem可以多选,只需要将MenuItem的IsCheckable属性设置为True... 查看详情

winform自定义控件中其他遮挡控件点击事件(代码片段)

自定义控件在其他窗口调用时,里面的lable阻挡了控件的点击事件解决方法自定义控件中lable的 点击事件privatevoidLable1_Click(objectsender,EventArgse)base.OnClick(e);//触发控件点击事件  查看详情

wpf自定义tabcontrol控件样式(代码片段)

...。二、实现TabControl的标题平均分布默认的TabControl标题是使用TabPanel容器包含的。要想实现Ta 查看详情

wpf自定义控件の扩展控件(代码片段)

原文:WPF自定义控件(三)の扩展控件    扩展控件,顾名思义就是对已有的控件进行扩展,一般继承于已有的原生控件,不排除继承于自定义的控件,不过这样做意义不大,因为既然都自定义了,为什么不一步到... 查看详情

winform自定义自动完成控件(代码片段)

...,很多优秀的前端框架都会带有自动完成控件,同样的,winform也有,在我们的TextBox和ComboBox中,只需要设置AutoCompleteSource属性为CustomSource,然后将值加入到AutoCompleteCustomSource中就可以了  比如:  string[]dataSource=newstring[]"appl... 查看详情

[wpf自定义控件]?window(窗体)的ui元素及行为(代码片段)

...义Window》的文章,但写着写着发觉内容太多,所以还是把使用WindowChrome自定义Window需要用到的部分基础知识独立出来,于是就形成了这篇文章。无论是桌面编程还是日常使用,Window(窗体)都是最常接触的UI元素之一,既然Window这... 查看详情

wpf自定义仪表盘控件(代码片段)

原文:WPF自定义仪表盘控件  闲来无事,分享一个仪表盘  源码:直接复制代码即可运行,=。=!<Windowx:Class="TGP.InstrumentationDemo.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http 查看详情

在winform界面使用自定义用户控件及tabelpanel和stackpanel布局控件(代码片段)

...,用户控件同时也可以封装处理一些简单的逻辑。在开发Winform各种类型项目,我都时不时需要定制一些特殊的用户控件,以方便在界面模块中反复使用。我们一般是在自定义的用户控件里面,添加各种各样的界面控件元素,或... 查看详情

wpf走马灯文字滚动自定义控件(代码片段)

原文:WPF走马灯文字滚动自定义控件///<summary>///Label走马灯自定义控件///</summary>[ToolboxBitmap(typeof(Label))]//设置工具箱中显示的图标publicclassScrollingTextControl:Label///<summary>///定时器///</summary>Timer 查看详情

[wpf自定义控件库]为form和自定义window添加functionbar(代码片段)

...“取消”那两个按钮————实现得千奇百怪,其实只要使用统一的Style起码就可以统一按钮的大小,而我喜欢更进一步将”确定“、”取消“或其它按钮封装进一个自定义控件里。这篇文章介绍了另一种ItemsControl的实现方式,... 查看详情