wpf使用winform控件

发布时间 2023-04-14 09:11:04作者: 奔腾的岩浆

一、添加引用

WindowsFormsIntegration.dll (负责整合WPF和Windows)
System.Windows.Forms.dll (WinForm自带的控件库)
提示:这两个引用都是在程序集中可以直接找到的
ControlLib_k.dll(自定义的控件库)

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

xmlns是XML_Namespace的缩写,用来引用程序集和其中的命名空间,类似C#的using。语法格式:
xmlns[:可选的映射前缀]=“名称空间”
类似网址的名称空间是XAML解析器硬性编码后的字符串,包含对多个程序集(.dll)的引用。如果引用单个外部的程序集,名称空间的写法如下:
xmlns:映射名=“clr-namespace:类库中名称空间的名字;assembly=类库文件名”

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

 

 

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

< wfi:WindowsFormsHost > </ wfi:WindowsFormsHost >为WinForm控件的宿主容器,每个宿主容器只能放一个Winform控件

<Grid>
  < wfi:WindowsFormsHost >
    < wf:NumericUpDown x:Name ="nupCounter" Maximum ="100" ></ wf:NumericUpDown >  //引用WinForm自带控件
  </ wfi:WindowsFormsHost >
  < wfi:WindowsFormsHost >
    <ck:Btn_Open x:Name ="openBtn" Text="打开"></ wf:NumericUpDown >  //引用自定义控件
  </ wfi:WindowsFormsHost >
</Grid>