在WPF应用中使用winForm控件

关键词:

winform有很多非常好用的原生控件。比如chart控件,openfiledialog控件等等。

wpf不支持直接使用winform的控件,但一个wpf程序中可以通过WindowsFormsHost控件托管winform控件。

使用下面的步骤使用全部的winform控件。在一个wpf程序中:

1.创建一个winform的自定义控件UserControl。

注意不是wpf用户控件,如下图所示

2.打开新建的用户控件,加入自己想用的winform控件。

所有winform控件都可以使用了,这样回到了我们熟悉的环境当中。

添加完成后,打开后台代码,记住当前用户控件的命名空间nameSpace

3.将用户控件插入wpf控件。

打开wpf页面(XAML),在开头引入你的用户控件,比如我的用户控件namespace是

COBRA4_cm.WindowsHelpper,那么加入


xmlns:WinHelpper="clr-namespace:COBRA4_cm.WindowsHelpper"


解释一下,winhelpper是自定义的标识符,下面会用到,clr-namespace:是映射的固定写法,

后面是命名空间。是时候轮到WindowsFormsHost上场了。

在wpf页面中插入WindowsFormsHost控件,然后在WindowsFormsHost中使用用户控件。

延续上面的例子,代码如下:

        <WindowsFormsHost Width="600" Height="200">

            <WinHelpper:OpenInputFileDialog>
                
            </WinHelpper:OpenInputFileDialog>
            
        </WindowsFormsHost>

注意,winhelpper就是我们上面头部引用中定义的标识符。打出winhelpper就可以把用户控件带出来了。

但只能在windowsformshost托管空间里面,托管控件定位样式可以根据wpf规则自由调整。

以上就完成了在wpf中使用winform控件的过程,用法就和使用控件一样。

作者:songshizhao 发表于:2017-03-11T02:08:00 访问量:2719
评论 [发表评论]