介绍Winform程序如何调用WPF窗体。
工具/原料
-
以VS2013为例。
方法/步骤
-
创建Winform应用程序项目。
打开VS2013,文件->新建->项目…,新建一个Windows窗体应用程序项目,项目名称为“Winform调用WPF窗体”。
为Form1添加一个按钮,用于打开WPF窗体。
-
创建待调用的WPF窗体。
为解决方案添加一个WPF应用程序项目,右键解决方案,添加->新建项目,创建一个WPF应用程序项目。
在WPF应用程序界面上拖放一个TextBox(测试键盘输入)和Button按钮(调用Winform窗体,下篇经验介绍)。
-
为项目添加WPF相关引用。
PresentationCore
PresentationFramework
System.Xaml
WindowsBase
WindowsFormsIntegration
以及待调用“WPF窗体”项目
-
书写按钮事件,调用WPF窗体。
如果不写ElementHost.EnableModelessKeyboardInterop(wpfwindow),调出WPF窗体的键盘输入不起作用。
另外,使用WindowInteropHelper类为WPF设置owner。
-
查看效果。
![WPF与Winform互操作:[1]Winform调用WPF窗体](https://imgsa.baidu.com/exp/w=500/sign=91d7ba25a964034f0fcdc2069fc27980/1e30e924b899a90196242fce1f950a7b0208f531.jpg)
![WPF与Winform互操作:[1]Winform调用WPF窗体](https://imgsa.baidu.com/exp/w=500/sign=58d7f6169e82d158bb8259b1b00819d5/9345d688d43f87942d1c38d6d01b0ef41ad53a62.jpg)
![WPF与Winform互操作:[1]Winform调用WPF窗体](https://imgsa.baidu.com/exp/w=500/sign=adf876e2c45c1038247ecec28210931c/d4628535e5dde711d447350ea5efce1b9c1661b4.jpg)
![WPF与Winform互操作:[1]Winform调用WPF窗体](https://imgsa.baidu.com/exp/w=500/sign=3e3e1a263f6d55fbc5c676265d234f40/d439b6003af33a87f1f976e2c45c10385243b5b5.jpg)
![WPF与Winform互操作:[1]Winform调用WPF窗体](https://imgsa.baidu.com/exp/w=500/sign=8602f1478e5494ee87220f191df7e0e1/d0c8a786c9177f3e12d58cf572cf3bc79e3d5660.jpg)
![WPF与Winform互操作:[1]Winform调用WPF窗体](https://imgsa.baidu.com/exp/w=500/sign=93d832c14936acaf59e096fc4cd88d03/5d6034a85edf8db193240d9c0b23dd54564e743b.jpg)
![WPF与Winform互操作:[1]Winform调用WPF窗体](https://imgsa.baidu.com/exp/w=500/sign=675366f7ba0e7bec23da03e11f2fb9fa/9358d109b3de9c828f0a8b776e81800a18d843de.jpg)
![WPF与Winform互操作:[1]Winform调用WPF窗体](https://imgsa.baidu.com/exp/w=500/sign=7edfffc679ec54e741ec1a1e893a9bfd/d009b3de9c82d158935f2b49820a19d8bd3e426c.jpg)