Eigenschaftenzuordnung von Windows Forms und WPF

Aktualisiert: November 2007

Die Technologien von Windows Forms und WPF besitzen zwei zwar ähnliche, aber dennoch unterschiedliche Eigenschaftenmodelle. Die Eigenschaftenzuordnung unterstützt die Interoperation zwischen den zwei Architekturen und stellt die folgenden Funktionen bereit:

  • Einfaches Zuordnen wichtiger Eigenschaftenänderungen in der Hostumgebung zum gehosteten Steuerelement oder Element.

  • Bereitstellen einer Standardbehandlung zum Zuordnen der am häufigsten verwendeten Eigenschaften.

  • Einfaches Entfernen, Überschreiben oder Erweitern von Standardeigenschaften.

  • Sicherstellen, dass Änderungen der Eigenschaftenwerte auf dem Host automatisch erkannt und für das gehostete Steuerelement oder Element übersetzt werden.

Tipp

Eigenschaftenänderungsereignisse werden nicht in der Hierarchie des Hostingsteuerelements oder des Elements weitergeleitet. Die Eigenschaftenübersetzung wird nicht ausgeführt, wenn der lokale Wert einer Eigenschaft sich nicht aufgrund von direkter Festlegung, Stilen, Vererbung, Datenbindung oder anderen Verfahren, die den Wert der Eigenschaft ändern, ändert.

Verwenden Sie die PropertyMap-Eigenschaft für das WindowsFormsHost-Element und die PropertyMap-Eigenschaft für das ElementHost-Steuerelement, um auf die Eigenschaftenzuordnung zuzugreifen.

Eigenschaftenzuordnung mit dem WindowsFormsHost-Element

Das WindowsFormsHost-Element übersetzt WPF-Standardeigenschaften mit der folgenden Übersetzungstabelle in ihre Windows Forms-Entsprechungen.

In Windows Presentation Foundation gehostete Elemente

Windows Forms

Interoperationsverhalten

Background

(System.Windows.Media.Brush)

BackColor

(System.Drawing.Color)

Das WindowsFormsHost-Element legt die BackColor-Eigenschaft des gehosteten Steuerelements und die BackgroundImage-Eigenschaft des gehosteten Steuerelements fest. Die Zuordnung wird unter Anwendung der folgenden Regeln ausgeführt:

  • Wenn Background eine Volltonfarbe ist, wird sie konvertiert und zum Festlegen der BackColor-Eigenschaft des gehosteten Steuerelements verwendet. Die BackColor-Eigenschaft wird nicht für das gehostete Steuerelement festgelegt, da das gehostete Steuerelement den Wert von der BackColor-Eigenschaft erben kann.

Tipp

Das gehostete Steuerelement unterstützt keine Transparenz. Jede BackColor zugewiesene Farbe muss vollständig deckend sein, mit einem Alphawert von 0xFF.

Tipp

Sie können dieses Verhalten überschreiben, oder Sie können die Background-Eigenschaftenzuordnung entfernen.

Cursor

Cursor

Wenn die Standardzuordnung nicht erneut zugewiesen wurde, durchläuft das WindowsFormsHost-Steuerelement die Vorgängerhierarchie, bis es einen Vorgänger mit festgelegter Cursor-Eigenschaft findet. Dieser Wert wird in den Windows Forms-Cursor mit der größten Entsprechung übersetzt.

Wenn die Standardzuordnung für die ForceCursor-Eigenschaft nicht erneut zugewiesen wurde, wird das Durchlaufen beim ersten Vorgänger beendet, dessen ForceCursor-Eigenschaft auf true festgelegt ist.

FlowDirection

(System.Windows.FlowDirection)

RightToLeft

(System.Windows.Forms.RightToLeft)

LeftToRight wird No zugeordnet.

RightToLeft wird Yes zugeordnet.

Inherit wird nicht zugeordnet.

FlowDirection.RightToLeft wird RightToLeft.Yes zugeordnet.

FontStyle

Style für System.Drawing.Font des gehosteten Steuerelements.

Der Satz von WPF-Eigenschaften wird in eine entsprechende Font übersetzt. Wenn sich eine dieser Eigenschaften ändert, wird eine neue Font erstellt. Für Normal: Italic wird deaktiviert. Für Italic oder Oblique: Italic wird aktiviert.

FontWeight

Style für System.Drawing.Font des gehosteten Steuerelements.

Der Satz von WPF-Eigenschaften wird in eine entsprechende Font übersetzt. Wenn sich eine dieser Eigenschaften ändert, wird eine neue Font erstellt. Für Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold oder UltraBold: Bold wird aktiviert. Für ExtraLight, Light, Normal, Regular, Thin oder UltraLight: Bold wird deaktiviert.

FontFamily

FontSize

FontStretch

FontStyle

FontWeight

Font

(System.Drawing.Font)

Der Satz von WPF-Eigenschaften wird in eine entsprechende Font übersetzt. Wenn sich eine dieser Eigenschaften ändert, wird eine neue Font erstellt. Die Größe des gehosteten Windows Forms-Steuerelements wird entsprechend dem Schriftgrad angepasst.

In WPF wird der Schriftgrad als ein sechsundneunzigstel Zoll ausgedrückt, in Windows Forms als ein zweiundsiebzigstel Zoll. Die entsprechende Umrechnungsformel lautet:

Windows Forms-Schriftgrad = WPF-Schriftgrad * 72,0 / 96,0.

Foreground

(System.Windows.Media.Brush)

ForeColor

(System.Drawing.Color)

Die Foreground-Eigenschaftenzuordnung wird unter Anwendung der folgenden Regeln ausgeführt:

IsEnabled

Enabled

Wenn IsEnabled festgelegt ist, legt das WindowsFormsHost-Element die Enabled-Eigenschaft für das gehostete Steuerelement fest.

Padding

Padding

Alle vier Werte der Padding-Eigenschaft für das gehostete Windows Forms-Steuerelement werden auf denselben Thickness-Wert festgelegt.

Visibility

Visible

  • Visible wird Visible = true zugeordnet. Das gehostete Windows Forms-Steuerelement ist sichtbar. Es wird nicht empfohlen, die Visible-Eigenschaft für das gehostete Steuerelement explizit auf false festzulegen.

  • Collapsed wird Visible = true oder false zugeordnet. Das gehostete Windows Forms-Steuerelement wird nicht gezeichnet, und der zugehörige Bereich wird reduziert.

  • Hidden: Das gehostete Windows Forms-Steuerelement nimmt Platz im Layout ein, ist aber nicht sichtbar. In diesem Fall wird die Visible-Eigenschaft auf true festgelegt. Es wird nicht empfohlen, die Visible-Eigenschaft für das gehostete Steuerelement explizit auf false festzulegen.

Angefügte Eigenschaften für Containerelemente werden vom WindowsFormsHost-Element vollständig unterstützt.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Zuordnen von Eigenschaften mit dem WindowsFormsHost-Element.

Aktualisierungen für übergeordnete Eigenschaften

Bei Änderungen an den meisten übergeordneten Eigenschaften werden Benachrichtigungen an das gehostete untergeordnete Steuerelement ausgegeben. In der folgenden Liste werden Eigenschaften beschrieben, für die keine Benachrichtigungen ausgegeben werden, wenn sich ihre Werte ändern.

Wenn Sie z. B. den Wert der Background-Eigenschaft des WindowsFormsHost-Elements ändern, ändert sich die BackColor-Eigenschaft des gehosteten Steuerelements nicht.

Eigenschaftenzuordnung mit dem ElementHost-Steuerelement

Die folgenden Eigenschaften bieten eine integrierte Änderungsbenachrichtigung. Rufen Sie nicht die OnPropertyChanged-Methode auf, wenn Sie diese Eigenschaften zuordnen:

  • AutoSize

  • BackColor

  • BackgroundImage

  • BackgroundImageLayout

  • BindingContext

  • CausesValidation

  • ContextMenu

  • ContextMenuStrip

  • Cursor

  • Dock

  • Enabled

  • Font

  • ForeColor

  • Location

  • Margin

  • Padding

  • Parent

  • Region

  • RightToLeft

  • Size

  • TabIndex

  • TabStop

  • Text

  • Visible

Das ElementHost-Steuerelement übersetzt Windows Forms-Standardeigenschaften mit der folgenden Übersetzungstabelle in die zugehörigen WPF-Entsprechungen.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Zuordnen von Eigenschaften mit dem ElementHost-Steuerelement.

In Windows Forms gehostete Elemente

Windows Presentation Foundation

Interoperationsverhalten

BackColor

(System.Drawing.Color)

Background

(System.Windows.Media.Brush) für das gehostete Element

Das Festlegen dieser Eigenschaft erzwingt das Neuzeichnen mit einem ImageBrush. Wenn die BackColorTransparent-Eigenschaft auf false (den Standardwert) festgelegt wird, basiert dieser ImageBrush auf der Darstellung des ElementHost-Steuerelements, einschließlich der zugehörigen BackColor-Eigenschaft, der BackgroundImage-Eigenschaft, der BackgroundImageLayout-Eigenschaft und aller angefügten Paint-Handler.

Wenn die BackColorTransparent-Eigenschaft auf true festgelegt wird, basiert der ImageBrush auf der Darstellung des übergeordneten Elements des ElementHost-Steuerelements, einschließlich der BackColor-Eigenschaft, der BackgroundImage-Eigenschaft und der BackgroundImageLayout-Eigenschaft des übergeordneten Elements sowie aller angefügten Paint-Handler.

BackgroundImage

(System.Drawing.Image)

Background

(System.Windows.Media.Brush) für das gehostete Element

Das Festlegen dieser Eigenschaft bewirkt dasselbe Verhalten, das für die BackColor-Zuordnung beschrieben wurde.

BackgroundImageLayout

Background

(System.Windows.Media.Brush) für das gehostete Element

Das Festlegen dieser Eigenschaft bewirkt dasselbe Verhalten, das für die BackColor-Zuordnung beschrieben wurde.

Cursor

(System.Windows.Forms.Cursor)

Cursor

(System.Windows.Input.Cursor)

Der Windows Forms-Standardcursor wird in den entsprechenden WPF-Standardcursor übersetzt. Wenn der Cursor von Windows Forms nicht der Standardcursor ist, wird der Standard zugewiesen.

Enabled

IsEnabled

Wenn Enabled festgelegt ist, legt das ElementHost-Steuerelement die IsEnabled-Eigenschaft für das gehostete Element fest.

Font

(System.Drawing.Font)

FontFamily

FontSize

FontStretch

FontStyle

FontWeight

Der Font-Wert wird in einen entsprechenden Satz von WPF-Schriftarteigenschaften übersetzt.

Bold

FontWeight für das gehostete Element

Wenn Boldtrue ist, wird FontWeight auf Bold festgelegt.

Wenn Boldfalse ist, wird FontWeight auf Normal festgelegt.

Italic

FontStyle für das gehostete Element

Wenn Italictrue ist, wird FontStyle auf Italic festgelegt.

Wenn Italicfalse ist, wird FontStyle auf Normal festgelegt.

Strikeout

TextDecorations für das gehostete Element

Gilt nur, wenn ein TextBlock-Steuerelement gehostet wird.

Underline

TextDecorations für das gehostete Element

Gilt nur, wenn ein TextBlock-Steuerelement gehostet wird.

RightToLeft

(System.Windows.Forms.RightToLeft)

FlowDirection

(FlowDirection)

No wird LeftToRight zugeordnet.

Yes wird RightToLeft zugeordnet.

Visible

Visibility

Das ElementHost-Steuerelement legt die Visibility-Eigenschaft für das gehostete Element unter Anwendung der folgenden Regeln fest:

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Zuordnen von Eigenschaften mit dem WindowsFormsHost-Element

Exemplarische Vorgehensweise: Zuordnen von Eigenschaften mit dem ElementHost-Steuerelement

Konzepte

Übersicht über die Interaktion zwischen WPF und Win32

Unterstützte Szenarien bei der Interoperation von Windows Presentation Foundation und Windows Forms

Referenz

ElementHost

WindowsFormsHost