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


前言

在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)