This documentation is archived and is not being maintained.

Walkthrough: Creating New Windows Presentation Foundation Content on Windows Forms at Design Time

This topic shows you how to create a Windows Presentation Foundation (WPF) control for use in your Windows Forms-based applications.

In this walkthrough, you perform the following tasks:

  • Create the project.

  • Create a new WPF control.

  • Add the new WPF control to a Windows Form. The WPF control is hosted in an ElementHost control.


The dialog boxes and menu commands you see might differ from those described in Help depending on your active settings or edition. To change your settings, choose Import and Export Settings on the Tools menu. For more information, see Visual Studio Settings.

You need the following components to complete this walkthrough:

  • Visual Studio 2008.

The first step is to create the Windows Forms project.


When hosting WPF content, only C# and Visual Basic projects are supported.

To create the project

Creating a new WPF control and adding it to your project is as easy as adding any other item to your project. The Windows Forms Designer works with a particular kind of control named composite control, or user control. For more information about WPF user controls, see UserControl.


The System.Windows.Controls.UserControl type for WPF is distinct from the user control type provided by Windows Forms, which is also named System.Windows.Forms.UserControl.

To create a new WPF control

  1. In Solution Explorer, add a new User Control (WPF) item to the project. Use the default name for the control type, UserControl1. For more information, see How to: Add and Remove Solution Items. Use the default name, UserControl1.xaml.

    Adding the new control has the following effects.

    • File UserControl1.xaml is added to the project.

    • Either file UserControl1.xaml.cs or UserControl1.xaml.vb is added to the project. This file contains the code-behind for event handlers and other implementation.

    • References to WPF assemblies are added to the project.

    • File UserControl1.xaml opens in the Windows Presentation Foundation (WPF) Designer for Visual Studio.

  2. In Design view, make sure that UserControl1 is selected. For more information, see How to: Select and Move Elements on the Design Surface.

  3. In the Properties window, set the value of the Width and Height properties to 200.

  4. From the Toolbox, drag a System.Windows.Controls.TextBox control onto the design surface.

  5. In the Properties window, set the value of the Text property to Hosted Content.


    In general, you should host more sophisticated WPF content. The System.Windows.Controls.TextBox control is used here for illustrative purposes only.

  6. Build the project.

Your new WPF control is ready for use on the form. Windows Forms uses the ElementHost control to host WPF content

To add a WPF control to a Windows Form

  1. Open Form1 in the Windows Forms Designer.

  2. In the Toolbox, find the tab labeled HostingWpf WPF User Controls.

  3. Drag an instance of UserControl1 onto the form.

    • An ElementHost control is created automatically on the form to host the WPF control.

    • The ElementHost control is named elementHost1 and in the Properties window, you can see its Child property is set to UserControl1.

    • References to WPF assemblies are added to the project.

    • The elementHost1 control has a smart tag panel that shows the available hosting options.

  4. In the ElementHost Tasks smart tag panel, select Dock in parent container.

  5. Press F5 to build and run the application.

Windows Forms and WPF are different technologies, but they are designed to interoperate closely. To provide richer appearance and behavior in your applications, try the following.