WinForm中调用WPF控件

a 夏天 提交于 2020-01-24 23:46:11

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中的控件,或者由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就是你自己创建的自定义的控件的名称,这样就可以了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!