WPF与Winform互操作:

http://jingyan.baidu.com/article/546ae18563fdcd1149f28c31.html

 

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

  • WPF与Winform互操作:[1]Winform调用WPF窗体1
  • WPF与Winform互操作:[1]Winform调用WPF窗体2
  • WPF与Winform互操作:[1]Winform调用WPF窗体3
  • WPF与Winform互操作:[1]Winform调用WPF窗体4
  • WPF与Winform互操作:[1]Winform调用WPF窗体5
  • WPF与Winform互操作:[1]Winform调用WPF窗体6
  • WPF与Winform互操作:[1]Winform调用WPF窗体7
分步阅读

介绍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窗体
    END
 
 
 
 
 
 
 
 
 

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

  • |
  • 浏览:16
  • |
  • 更新:2014-05-26 00:34
  • WPF与Winform互操作:[2]WPF调用Winform窗体1
  • WPF与Winform互操作:[2]WPF调用Winform窗体2
  • WPF与Winform互操作:[2]WPF调用Winform窗体3
  • WPF与Winform互操作:[2]WPF调用Winform窗体4
分步阅读

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

工具/原料

  • 以VS2013为例。

方法/步骤

  1. 1

    创建WPF应用程序项目。

    步骤为上篇经验 Winform调用WPF窗体 中步骤2所创建的项目,这里就不在详细描述了。

  2. 2

    创建一个Winform窗体应用程序。

    (为了避免项目循环引用,这里新建一个Winform程序项目)

    为解决方案添加一个Windows窗体应用程序项目,右键解决方案,添加->新建项目,创建一个Windows窗体应用程序项目(命名为“Winform窗体”)。

  3. 3

    为WPF应用程序项目添加Winform相关引用。

    System.Windows.Forms

    添加步骤2的项目引用:Winform窗体

    WPF与Winform互操作:[2]WPF调用Winform窗体
  4. 4

    书写按钮事件,调用Winform窗体。

    这里,使用WindowInteropHelper类来协助WPF与Win32的互操作。

    WindowWrapper根据WPF窗体的WindowInteropHelper实例的Handle获得IWin32Window对象,用于Winform窗体Show调用时作为Winform窗体的Owner。

    需要说明的是:这里虽指定了Winform窗体的Owner,但是CenterParent是针对于Mdi窗体的,这里将不起作用。

    WPF与Winform互操作:[2]WPF调用Winform窗体
    WPF与Winform互操作:[2]WPF调用Winform窗体
  5. 5

    查看效果

    WPF与Winform互操作:[2]WPF调用Winform窗体
    END
 
posted @ 2014-06-30 22:05  高_山_流_水  阅读(459)  评论(0)    收藏  举报