How to host WPF Control into the Windows Form Application

來源:互聯網
上載者:User

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】

      相關文章

      聯繫我們

      該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

      如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

      A Free Trial That Lets You Build Big!

      Start building with 50+ products and up to 12 months usage for Elastic Compute Service

      • Sales Support

        1 on 1 presale consultation

      • After-Sales Support

        24/7 Technical Support 6 Free Tickets per Quarter Faster Response

      • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.