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

如何在wpf中使用winform控件或者winform的自定义控件

程序员文章站 2022-01-05 10:51:01
...

前言

在wpf中使用winform控件或者winform的自定义控件


一、添加引用

WindowsFormsIntegration.dll
System.Windows.Forms.dll

提示:这两个引用都是在程序集中可以直接找到的

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

代码如下(示例)

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

三、在WPF中使用WinForm或自定义控件

xaml文件代码如下(示例)

<Grid  Grid.Row="1">
	<DockPanel Name="m_panel">
		<WindowsFormsHost x:Name="host" Margin="0,0,0,0" />
	</DockPanel>
 </Grid>

在代码中定义UserControl1 user= new UserControl1 (); 这里不要忘记添加引用。
UserControl1 是我的自定义控件
然后再将控件放入WindowsFormsHost 中,使用这句代码 : host.Child = user;


四、在WPF中使用WinForm控件

xaml文件代码如下(示例)

<Grid  Grid.Row="1">
	<wfi:WindowsFormsHost>  
                <wf:Label x:Name="wfLabel" Text="winForm控件在此" />     
       </wfi:WindowsFormsHost>
 </Grid>

补充

在WPF中使用WinForm或自定义控件,如果出现设置了控件,也没有报错,但是控件就是不显示,多半是AllowTransparent = “True”这句话出来问题,只需要将True改成False就可以了,如果一定要使用AllowTransparent = “True”,请参考下面这个方法:https://www.jb51.net/article/57535.htm

相关标签: wpf winform