WPF使用Winform自定義控件


在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,今天的分享就到這里了,有疑問歡迎指導。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM