How to host WPF Control into the Windows Form Application

Host a WPF control into Win32 Windows Form

 

This article would explain how to host a WPF control into the Windows Form. I would create the WPF Control, and a Windows form application, which would host the WPF control. In the next article we would see how event from WPF control could be passed to hosting windows form.

 

Note: In Windows Form we can host only a WPF element, so we would use the Grid element in WPF and put the control(s) into it to make a user control. In this sample I would use button and text box WPF controls.

 

Step1. Creating the WPF Control:

  1. Open Visual Studio 2008. 
  2. Open the project creation template from File-> Create project menu.
  3. Select the WPF User Control Library.
  4. Name the project as WpfUserControlLib and create the project.
  5. It would create UserControl1.xaml and UserControl1.xaml.cs in the project.
  6. Inherit the UserControl1 from the Grid elemement instead of the UserControl, as I stated in the Note above we can not host a control rather we can host a element into the Windows Form. This change has to be done in both UserControl1.xaml and UserControl1.xaml.cs.
  7. Now Drop the lable, text box and two buttons(Ok and cancel).
  8. Build the WpfUserControlLib.

 

Make sure WpfUserControlLib contains following references, though Visual Studio 2008 would do these by itself

    • System
    • PresentationCore
    • PresentationFramework
    • WindowsBase

 

 

Step 2: Creating the Windows Forms Host Application in the current solution:

 

  1. Open the project creation template from File-> Add ->New Project menu.
  2. Select Windows Form Application from the project template and name it WinFormWPFHostApp.
  3. From the Toolbox (WPF Interoperability Tab) drop the ElementHost Control to the Form1. It would be named as elementHost1.
  4. Set the Dock property to fill of elementHost1 control (Optional).
  5. Add the reference of WpfUserControlLib project created in the Step1.
  6. Create the class level variable of the WPFUsercontrol type as

WpfUserControlLib.UserControl1 _WPFUserControl = null;

 

  1. Add the following code to create the instance of the WPF User control and attach it with Element Host in the constructor or load event of the form.

 

            elementHost1.Dock = DockStyle.Fill;
            _WPFUserControl = new WpfUserControlLib.UserControl1();
            elementHost1.Child = _WPFUserControl;



  1. Make sure the form size is good enough to display the WPF control.

Make sure WinFormWPFHostApp contains following references, though Visual Studio 2008 would add these by itself.

    • WindowsBase
    • WindowsFormsIntegration 

Compile and Run the Windows Application you would see the WPF control is hosted in the Windows Control.

 

Summary: We can use the power of the WPF Controls visual elements into the WinForm application by hosting very easily. In the Next Article I would extend this to explain how to share the data and send the event to host from the WPF control.

转自【http://www.a2zdotnet.com/View.aspx?Id=78#.Ub8fGZyvy3I】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值