WinForm中调用WPF控件

Posted 正在编译

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WinForm中调用WPF控件相关的知识,希望对你有一定的参考价值。

WinForm中调用WPF控件

 

在WinForm中可以使用WPF中的控件,或者由WPF创建的自定义控件;

步骤1:创建WinForm工程;

步骤2:在WinForm工程的解决方案资源管理器中,在刚刚创建的WinForm解决方案中新建或者添加现有的WPF用户控件工程;

步骤3:在WPF中创建自定义的控件,或者添加WPF控件到面板上;

步骤4:在WinForm面板上添加ElementHost控件(工具箱中);

步骤5:生成解决方案;

步骤6:在刚刚的ElementHost中的Child属性中添加刚刚的WPF生成的控件;

步骤7:完成。

如果在ElementHost的Child属性中添加了WPF生成的控件,编译的时候出现如下错误:

错误 1 类型“System.Windows.Markup.IComponentConnector”在未被引用的程序集中定义。必须添加对程序集“System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。 

则要在WinForm中解决方案-> 添加引用->System.Xaml,类似的错误,就添加相应的引用。

如何在winform中调用WPF用户控件里面的属性和方法呢,如图:

WinForm工程为test,WPF用户控件工程为WpfControlLibrary1。

假设我们的WpfControlLibrary1中有个方法叫wpf_fun();如果我们要在test中调用的话,则需要把WPF的控件添加到WinForm中的ElementHost中,然后再需要调用的地方写上((WpfControlLibrary1.MainControl)elementHost1.Child).wpf_fun();,其中MainControl就是你自己创建的自定义的控件的名称,这样就可以了。

以上是关于WinForm中调用WPF控件的主要内容,如果未能解决你的问题,请参考以下文章

winform 添加wpf 窗体怎么使用

C#winform中调用wpf

在WPF中显示不出winform控件的原因吗

winform调用wpf异常问题

winform 可以用wpf窗体吗

会winform再学wpf简单吗