Exemplarische Vorgehensweise: Hosten eines zusammengesetzten Windows Presentation Foundation-Steuerelements in Windows Forms

Aktualisiert: November 2007

In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie Sie ein zusammengesetztes WPF-Steuerelement erstellen und mithilfe des ElementHost-Steuerelements in Windows Forms-Steuerelementen und -Formularen hosten.

In dieser exemplarischen Vorgehensweise implementieren Sie ein WPF-UserControl mit zwei untergeordneten Steuerelementen. UserControl zeigt einen dreidimensionalen Kegel an. 3D-Objekte lassen sich mit WPF viel einfacher rendern als mit Windows Forms. Daher empfiehlt es sich, eine WPF-UserControl-Klasse zu hosten, um 3D-Grafiken in Windows Forms zu erstellen.

In dieser exemplarischen Vorgehensweise werden folgende Aufgaben veranschaulicht:

Eine vollständige Codeauflistung der in dieser exemplarischen Vorgehensweise veranschaulichten Aufgaben finden Sie unter Beispiel für das Hosten eines zusammengesetzten Windows Presentation Foundation-Steuerelements in Windows Forms.

Hinweis: Je nach den aktiven Einstellungen oder der verwendeten Version können sich die angezeigten Dialogfelder und Menübefehle von den in der Hilfe beschriebenen unterscheiden. Wählen Sie im Menü Extras die Option Einstellungen importieren und exportieren aus, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

  • Visual Studio 2008.

Erstellen von UserControl

So erstellen Sie UserControl

  1. Erstellen Sie ein WPF-Benutzersteuerelementbibliothek-Projekt mit dem Namen HostingWpfUserControlInWf.

  2. Öffnen Sie die Datei UserControl1.xaml im WPF-Designer.

  3. Ersetzen Sie den generierten Code durch folgenden Code.

    Dieser Code definiert ein System.Windows.Controls.UserControl mit zwei untergeordneten Steuerelementen. Das erste untergeordnete Steuerelement ist ein System.Windows.Controls.Label-Steuerelement und das zweite ein Viewport3D-Steuerelement, das einen 3D-Kegel anzeigt.

Erstellen des Windows Forms-Hostprojekts

So erstellen Sie das Hostprojekt

  1. Fügen Sie der Projektmappe ein Windows-Anwendungsprojekt mit dem Namen WpfUserControlHost hinzu. Weitere Informationen finden Sie unter Dialogfeld "Neues Projekt hinzufügen".

  2. Fügen Sie im Projektmappen-Explorer einen Verweis auf die WindowsFormsIntegration-Assembly mit dem Namen WindowsFormsIntegration.dll hinzu.

  3. Fügen Sie Verweise auf die folgenden WPF-Assemblys hinzu:

    • PresentationCore

    • PresentationFramework

    • WindowsBase

  4. Fügen Sie einen Verweis auf das Projekt HostingWpfUserControlInWf hinzu.

  5. Legen Sie WpfUserControlHost im Projektmappen-Explorer als Startprojekt fest.

Hosten von Windows Presentation Foundation-UserControl

So hosten Sie UserControl

  1. Öffnen Sie Form1 im Windows Forms-Designer.

  2. Klicken Sie im Eigenschaftenfenster auf Ereignisse, und doppelklicken Sie dann auf das Load-Ereignis, um einen Ereignishandler zu erstellen.

    Der Code-Editor wird mit dem neu generierten Form1_Load-Ereignishandler geöffnet.

  3. Ersetzen Sie den Code in Form1.cs durch den folgenden Code.

    Der Form1_Load-Ereignishandler erstellt eine Instanz von UserControl1 und fügt siezur Auflistung der untergeordneten Steuerelemente des ElementHost-Steuerelements hinzu. Das ElementHost-Steuerelement wird der Auflistung der untergeordneten Steuerelemente des Formulars hinzugefügt.

    Imports System
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Text
    Imports System.Windows.Forms
    
    Imports System.Windows.Forms.Integration
    
    Public Class Form1
        Inherits Form
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' Create the ElementHost control for hosting the
            ' WPF UserControl.
            Dim host As New ElementHost()
            host.Dock = DockStyle.Fill
    
            ' Create the WPF UserControl.
            Dim uc As New HostingWpfUserControlInWf.UserControl1()
    
            ' Assign the WPF UserControl to the ElementHost control's
            ' Child property.
            host.Child = uc
    
            ' Add the ElementHost control to the form's
            ' collection of child controls.
            Me.Controls.Add(host)
        End Sub
    
    End Class
    
  4. Drücken Sie F5, um die Anwendung zu erstellen und auszuführen.

Siehe auch

Aufgaben

Beispiel für das Hosten eines zusammengesetzten Windows Presentation Foundation-Steuerelements in Windows Forms

Konzepte

Exemplarische Vorgehensweise: Hosten eines Windows Presentation Foundation-Steuerelements in Windows Forms

Exemplarische Vorgehensweise: Hosten eines zusammengesetzten Windows Forms-Steuerelements in Windows Presentation Foundation

Referenz

ElementHost

WindowsFormsHost

Weitere Ressourcen

WPF-Designer

Gewusst-wie-Themen zu Migration und Interoperabilität