zoukankan      html  css  js  c++  java
  • 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,今天的分享就到这里了,有疑问欢迎指导。

  • 相关阅读:
    iis里不能同时启动多个站点的原因总结:
    相机200万提升到300万的软件技术插值法
    nginx与PHP的安装配置
    IIS和apache都要同时使用80端口的解决办法
    nginx安装与配置
    只写一个表单,可以达到两个表单的效果
    nginx伪静态规则
    伪静态涉及到的重复页面之属性canonical
    ckeditor与ckfinder组合配置
    上传图片的美化
  • 原文地址:https://www.cnblogs.com/guhuazhen/p/12360003.html
Copyright © 2011-2022 走看看