WPF与Winform互操作:Winform调用WPF窗体

  • Post author:
  • Post category:其他


介绍Winform程序如何调用WPF窗体。

工具/原料

  • 以VS2013为例。

方法/步骤

  1. 创建Winform应用程序项目。

    打开VS2013,文件->新建->项目…,新建一个Windows窗体应用程序项目,项目名称为“Winform调用WPF窗体”。

    为Form1添加一个按钮,用于打开WPF窗体。


    WPF与Winform互操作:[1]Winform调用WPF窗体


    WPF与Winform互操作:[1]Winform调用WPF窗体

  2. 创建待调用的WPF窗体。

    为解决方案添加一个WPF应用程序项目,右键解决方案,添加->新建项目,创建一个WPF应用程序项目。

    在WPF应用程序界面上拖放一个TextBox(测试键盘输入)和Button按钮(调用Winform窗体,下篇经验介绍)。


    WPF与Winform互操作:[1]Winform调用WPF窗体


    WPF与Winform互操作:[1]Winform调用WPF窗体


    WPF与Winform互操作:[1]Winform调用WPF窗体

  3. 为项目添加WPF相关引用。

    PresentationCore

    PresentationFramework

    System.Xaml

    WindowsBase

    WindowsFormsIntegration

    以及待调用“WPF窗体”项目


    WPF与Winform互操作:[1]Winform调用WPF窗体

  4. 书写按钮事件,调用WPF窗体。

    如果不写ElementHost.EnableModelessKeyboardInterop(wpfwindow),调出WPF窗体的键盘输入不起作用。

    另外,使用WindowInteropHelper类为WPF设置owner。


    WPF与Winform互操作:[1]Winform调用WPF窗体

  5. 查看效果。


    WPF与Winform互操作:[1]Winform调用WPF窗体