如何在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
上一篇: JDK8新特性之Optional操作
推荐阅读
-
Winform中在使用Dock属性设计页面布局控件的顺序导致页面效果不同的问题
-
Winform中使用printDocument控件打印pictureBox中的二维码照片
-
在Windows桌面端软件(wpf、winform)中使用浏览网页的控件
-
Winform中在使用Dock属性设计页面布局控件的顺序导致页面效果不同的问题
-
Winform中使用printDocument控件打印pictureBox中的二维码照片
-
Winform中CheckedListBox控件的使用
-
winform中可以折叠的datagridview,自定义控件
-
Wpf使用Winform控件后Wpf元素被Winform控件遮盖问题的解决
-
Winform控件在WPF中使用的注意事项
-
如何在wpf中使用winform控件或者winform的自定义控件