Freigeben über


Eigenschaftenzuordnung für Windows Forms und WPF

Die Windows Forms- und WPF-Technologien weisen zwei ähnliche, aber unterschiedliche Eigenschaftenmodelle auf. Die Eigenschaftenzuordnung unterstützt die Interoperabilität zwischen den beiden Architekturen und bietet die folgenden Funktionen:

  • Erleichtert das Zuordnen relevanter Eigenschaftsänderungen in der Hostumgebung zum gehosteten Steuerelement oder Element.

  • Stellt die Standardbehandlung für die Zuordnung der am häufigsten verwendeten Eigenschaften bereit.

  • Ermöglicht eine einfache Entfernung, Außerkraftsetzung oder Erweiterung von Standardeigenschaften.

  • Stellt sicher, dass Eigenschaftswertänderungen auf dem Host automatisch erkannt und in das gehostete Steuerelement oder Element übersetzt werden.

Hinweis

Eigenschaftsänderungsereignisse werden nicht innerhalb der Hosting-Steuerelement- oder Elementhierarchie propagiert. Die Eigenschaftsübersetzung wird nicht ausgeführt, wenn sich der lokale Wert einer Eigenschaft aufgrund von direkten Einstellungen, Formatvorlagen, Vererbung, Datenbindung oder anderen Mechanismen, die den Wert der Eigenschaft ändern, nicht ändert.

Verwenden Sie die PropertyMap Eigenschaft am WindowsFormsHost Element und die PropertyMap Eigenschaft an der ElementHost Steuerung, um auf die Eigenschaftszuordnung zuzugreifen.

Eigenschaftenzuordnung mit dem WindowsFormsHost-Element

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

Hosten von Windows Presentation Foundation 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 (Mapping) erfolgt mithilfe der folgenden Regeln:

- Wenn Background eine Volltonfarbe ist, wird sie konvertiert und verwendet, um die Eigenschaft BackColor des gehosteten Steuerelements festzulegen. Die BackColor Eigenschaft wird für das gehostete Steuerelement nicht festgelegt, da das gehostete Steuerelement den Wert der BackColor Eigenschaft erben kann. Anmerkung: Das gehostete Steuerelement unterstützt keine Transparenz. Jede Farbe, die BackColor zugewiesen wird, muss vollständig undurchsichtig sein und einen Alphawert von 0xFF haben.

- Wenn Background keine unifarbene Fläche ist, erstellt das WindowsFormsHost-Steuerelement eine Bitmap aus der Background-Eigenschaft. Das WindowsFormsHost Steuerelement weist diese Bitmap der BackgroundImage Eigenschaft des gehosteten Steuerelements zu. Dies ist ein Effekt, der der Transparenz ähnelt. Anmerkung: Sie können dieses Verhalten außer Kraft setzen oder die Background Eigenschaftszuordnung entfernen.
Cursor Cursor Wenn die Standardzuordnung nicht neu zugewiesen wurde, durchläuft das Steuerelement seine Vorgängerhierarchie WindowsFormsHost, bis es einen Vorgänger findet, bei dem die Eigenschaft Cursor festgelegt ist. Dieser Wert wird in den nächstgelegenen Windows Forms-Cursor übersetzt.

Wenn die Standardzuordnung für die ForceCursor Eigenschaft nicht neu zugewiesen wurde, wird der Durchlauf beim ersten Vorgänger gestoppt, dessen ForceCursor auf true gesetzt ist.
FlowDirection

(System.Windows.FlowDirection)
RightToLeft

(System.Windows.Forms.RightToLeft)
LeftToRight wird No zugeordnet.

RightToLeft wird Yes zugeordnet.

Inherit ist nicht zugeordnet.

FlowDirection.RightToLeft wird RightToLeft.Yes zugeordnet.
FontStyle Style auf den gehosteten Steuerelementen System.Drawing.Font Der Satz von WPF-Eigenschaften wird in einen entsprechenden Fontübersetzt. Wenn sich eine dieser Eigenschaften ändert, wird ein neues Font erstellt. Für Normal: Italic ist deaktiviert. Für Italic oder Oblique: Italic ist aktiviert.
FontWeight Style auf den gehosteten Steuerelementen System.Drawing.Font Der Satz von WPF-Eigenschaften wird in einen entsprechenden Fontübersetzt. Wenn sich eine dieser Eigenschaften ändert, wird ein neues Font erstellt. Für Black, , Bold, DemiBold, ExtraBold, Heavy, Mediumoder SemiBoldUltraBold: Bold ist aktiviert. Für ExtraLight, Light, , Normal, Regular, Thinoder UltraLight: Bold ist deaktiviert.
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Font

(System.Drawing.Font)
Der Satz von WPF-Eigenschaften wird in einen entsprechenden Fontübersetzt. Wenn sich eine dieser Eigenschaften ändert, wird ein neues Font erstellt. Das gehostete Windows Forms-Steuerelement ändert die Größe basierend auf der Schriftgröße.

Der Schriftgröße in WPF wird als ein Sechsundneunzigstel eines Zolls und in Windows Forms als ein Zweiundsiebzigstel eines Zolls ausgedrückt. Die entsprechende Konvertierung lautet:

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

(System.Windows.Media.Brush)
ForeColor

(System.Drawing.Color)
Die Foreground Eigenschaftenzuordnung wird mithilfe der folgenden Regeln ausgeführt:

- Ist Foreground ein SolidColorBrush, verwenden Sie Color für ForeColor.
- Wenn Foreground ein GradientBrush Wert ist, verwenden Sie die Farbe der GradientStop mit dem niedrigsten Offsetwert für ForeColor.
- Für jeden anderen Brush-Typ ForeColor unverändert lassen. Dies bedeutet, dass der Standardwert verwendet wird.
IsEnabled Enabled Wenn IsEnabled festgelegt wird, WindowsFormsHost legt das Element die Enabled Eigenschaft für das gehostete Steuerelement fest.
Padding Padding Alle vier Werte der Padding Eigenschaft im gehosteten Windows Forms-Steuerelement werden auf denselben Thickness Wert festgelegt.

- Werte, die größer als MaxValue sind, werden auf MaxValue gesetzt.
- Werte kleiner als MinValue werden auf MinValue gesetzt.
Visibility Visible - Visible zugeordnet zu Visible = true. Das gehostete Windows Forms-Steuerelement ist sichtbar. Das explizite Festlegen der Visible Eigenschaft für das gehostete Steuerelement false wird nicht empfohlen.
- Collapsed entspricht Visible = true oder false. Das gehostete Windows Forms-Steuerelement wird nicht gezeichnet, und sein Bereich wird zusammengeklappt.
- Hidden : Das gehostete Windows Forms-Steuerelement belegt Platz im Layout, ist aber nicht sichtbar. In diesem Fall wird die-Visible Eigenschaft auf true gesetzt. Das explizite Festlegen der Visible Eigenschaft für das gehostete Steuerelement false wird nicht empfohlen.

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

Weitere Informationen finden Sie unter Walkthrough: Mapping Properties Using the WindowsFormsHost Element.

Aktualisierungen von übergeordneten Eigenschaften

Änderungen an den meisten Elterneigenschaften benachrichtigen das gehostete untergeordnete Steuerelement. In der folgenden Liste werden Eigenschaften beschrieben, die keine Benachrichtigungen verursachen, wenn sich ihre Werte ändern.

Wenn Sie beispielsweise 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 stellen eine integrierte Änderungsbenachrichtigung bereit. Rufen Sie die OnPropertyChanged Methode nicht auf, wenn Sie diese Eigenschaften zuordnen:

  • Automatische Größenanpassung

  • Hintergrundfarbe

  • Hintergrundbild

  • Hintergrundbildlayout

  • Bindungskontext

  • CausesValidation

  • Kontextmenü

  • ContextMenuStrip

  • Mauszeiger

  • Dockingstation

  • Aktiviert

  • Schriftart

  • ForeColor

  • Standort

  • Rand

  • Polsterung

  • Elternteil

  • Region

  • Rechts-nach-Links

  • Größe

  • TabIndex

  • Tabulatorstopp

  • Text

  • Sichtbar

Das ElementHost Steuerelement übersetzt die Standardeigenschaften von Windows Forms in ihre WPF-Entsprechungen mithilfe der folgenden Übersetzungstabelle.

Weitere Informationen finden Sie unter Walkthrough: Mapping Properties Using the ElementHost Control.

„Windows Forms Hosting“ Windows Presentation Foundation Interoperationsverhalten
BackColor

(System.Drawing.Color)
Background

(System.Windows.Media.Brush) für das gehostete Element
Das Festlegen dieser Eigenschaft erzwingt eine Neuerstellung mit einem ImageBrush. Wenn die Eigenschaft BackColorTransparent auf false (den Standardwert) festgelegt ist, basiert ImageBrush auf der Darstellung des ElementHost Steuerelements, einschließlich seiner BackColor, BackgroundImage, BackgroundImageLayout Eigenschaften und aller angefügten Paint-Handler.

Wenn die BackColorTransparent-Eigenschaft auf true festgelegt ist, basiert das ImageBrush auf der Darstellung des übergeordneten ElementHost-Steuerelements, einschließlich der BackColor-Eigenschaft, BackgroundImage- und BackgroundImageLayout-Eigenschaften und aller angebrachten Paint-Handler.
BackgroundImage

(System.Drawing.Image)
Background

(System.Windows.Media.Brush) für das gehostete Element
Das Festlegen dieser Eigenschaft bewirkt das gleiche Verhalten, das für die BackColor Zuordnung beschrieben wird.
BackgroundImageLayout Background

(System.Windows.Media.Brush) für das gehostete Element
Das Festlegen dieser Eigenschaft bewirkt das gleiche Verhalten, das für die BackColor Zuordnung beschrieben wird.
Cursor

(System.Windows.Forms.Cursor)
Cursor

(System.Windows.Input.Cursor)
Der Standardcursor von Windows Forms wird zum entsprechenden Standardcursor von WPF übersetzt. Wenn windows Forms kein Standardcursor ist, wird die Standardeinstellung zugewiesen.
Enabled IsEnabled Wenn Enabled festgelegt wird, 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 auf gehosteten Elementen Wenn Boldtrue ist, wird FontWeight auf Bold gesetzt.

Wenn Boldfalse ist, wird FontWeight auf Normal gesetzt.
Italic FontStyle auf gehosteten Elementen Wenn Italictrue ist, wird FontStyle auf Italic gesetzt.

Wenn Italicfalse ist, wird FontStyle auf Normal gesetzt.
Strikeout TextDecorations auf gehosteten Elementen Gilt nur, wenn ein TextBlock Steuerelement gehostet wird.
Underline TextDecorations auf gehosteten Elementen 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 mithilfe der folgenden Regeln fest:

- Visible = true zugeordnet zu Visible.
- Visible = false zugeordnet zu Hidden.

Siehe auch