Eigenschaftenzuordnung von Windows Forms und WPF

Bei den Windows Forms- und WPF-Technologien gibt es zwei ähnliche, aber unterschiedliche Eigenschaftsmodelle. Die Eigenschaftenzuordnung unterstützt die Interoperation zwischen den beiden Architekturen und bietet die folgenden Funktionen:

  • Vereinfacht das Zuordnen von relevanten Eigenschaftsänderungen in der Hostumgebung zum gehosteten Steuerelement oder Element.

  • Bietet eine Standardbehandlung zum Zuordnen der am häufigsten verwendeten Eigenschaften.

  • Ermöglicht einfaches Entfernen, Außerkraftsetzen oder Erweitern von Standardeigenschaften.

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

Hinweis

Eigenschaftsänderungsereignisse werden über das Hostingsteuerelement oder die Elementhierarchie nicht weitergegeben. Die Eigenschaftsübersetzung wird nicht durchgefü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.

Mithilfe der Eigenschaft PropertyMap für das Element WindowsFormsHost und der Eigenschaft PropertyMap für das Steuerelement ElementHost können Sie auf die Eigenschaftenzuordnung zugreifen.

Eigenschaftenzuordnung mit dem Element „WindowsFormsHost“

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

Windows Presentation Foundation-Hosting Windows Forms Interoperationsverhalten
Background

(System.Windows.Media.Brush)
BackColor

(System.Drawing.Color)
Das Element WindowsFormsHost legt die Eigenschaft BackColor und die Eigenschaft BackgroundImage des gehosteten Steuerelements fest. Die Zuordnung wird mithilfe der folgenden Regeln durchgeführt:

– Wenn Background eine Volltonfarbe ist, wird sie konvertiert und zum Festlegen der Eigenschaft BackColor des gehosteten Steuerelements verwendet. Die Eigenschaft BackColor wird für das gehostete Steuerelement nicht festgelegt, weil dieses Steuerelement den Wert der Eigenschaft BackColor erben kann. Hinweis: Das gehostete Steuerelement unterstützt keine Transparenz. Jede BackColor zugewiesene Farbe muss vollständig undurchsichtig sein, mit einem Alphawert „0xFF“.

– Wenn Background keine Volltonfarbe ist, erstellt das Steuerelement WindowsFormsHost eine Bitmap aus der Eigenschaft Background. Das Steuerelement WindowsFormsHost weist diese Bitmap der Eigenschaft BackgroundImage des gehosteten Steuerelements zu. Dies bietet einen ähnlichen Effekt wie Transparenz. Hinweis: Sie können dieses Verhalten außer Kraft setzen oder die Eigenschaftenzuordnung Background entfernen.
Cursor Cursor Wenn die Standardzuordnung nicht erneut zugewiesen wurde, durchläuft das Steuerelement WindowsFormsHost seine Hierarchie von Vorgängerelementen so lange, bis es ein Vorgängerelement mit seinem Eigenschaftensatz Cursor findet. Dieser Wert wird in den am meisten entsprechenden Windows Forms-Cursor übersetzt.

Wenn die Standardzuordnung für die Eigenschaft ForceCursor nicht erneut zugewiesen wurde, endet der Durchlauf beim ersten Vorgängerelement, bei dem ForceCursor auf true festgelegt wurde.
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 Die Gruppe von WPF-Eigenschaften wird in eine entsprechende Font (Schriftart) ü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 Die Gruppe von WPF-Eigenschaften wird in eine entsprechende Font (Schriftart) ü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)
Die Gruppe von WPF-Eigenschaften wird in eine entsprechende Font übersetzt. Wenn sich eine dieser Eigenschaften ändert, wird eine neue Font erstellt. Das gehostete Windows Forms-Steuerelement ändert die Größe basierend auf dem Schriftgrad.

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

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

(System.Windows.Media.Brush)
ForeColor

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

– Wenn Foreground den Wert SolidColorBrush hat, verwenden Sie Color für ForeColor.
– Wenn Foreground den Wert GradientBrush hat, verwenden Sie die Farbe von GradientStop mit dem niedrigsten Offsetwert für ForeColor.
– Behalten Sie bei jedem anderen Brush-Typ ForeColor unverändert bei. Dies bedeutet, dass die Standardeinstellung verwendet wird.
IsEnabled Enabled Wenn IsEnabled festgelegt wird, legt das Element WindowsFormsHost die Eigenschaft Enabled für das gehostete Steuerelement fest.
Padding Padding Alle vier Werte der Eigenschaft Padding im gehosteten Windows Forms-Steuerelement werden auf denselben Wert für Thickness festgelegt.

– Werte, die größer als MaxValue sind, werden auf MaxValue festgelegt.
– Werte, die kleiner als MinValue sind, werden auf MinValue festgelegt.
Visibility Visible - Visible wird Visible = true zugeordnet. Das gehostete Windows Forms-Steuerelement ist sichtbar. Vom expliziten Festlegen der Eigenschaft Visible für das gehostete Steuerelement auf false wird abgeraten.
- Collapsed wird Visible = true oder false zugeordnet. Das gehostete Windows Forms-Steuerelement wird nicht gezeichnet, und dessen Bereich wird reduziert.
- Hidden: Das gehostete Windows Forms-Steuerelement belegt Platz im Layout, ist aber nicht sichtbar. In diesem Fall wird die Eigenschaft Visible auf true festgelegt. Vom expliziten Festlegen der Eigenschaft Visible für das gehostete Steuerelement auf false wird abgeraten.

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

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Zuordnen von Eigenschaften mithilfe des Steuerelements „WindowsFormsHost“.

Updates für übergeordnete Eigenschaften

Änderungen an den meisten übergeordneten Eigenschaften lösen Benachrichtigungen an das gehostete untergeordnete Steuerelement aus. In der folgenden Liste werden Eigenschaften beschrieben, die bei einer Änderung ihrer Werte keine Benachrichtigungen auslösen.

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

Eigenschaftenzuordnung mit dem Steuerelement „ElementHost“

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

  • AutoSize

  • BackColor

  • BackgroundImage

  • BackgroundImageLayout

  • BindingContext

  • CausesValidation

  • ContextMenu

  • ContextMenuStrip

  • Cursor

  • Andocken

  • Aktiviert

  • Schriftart

  • ForeColor

  • Ort

  • Margin

  • Auffüllen

  • Parent

  • Region

  • RightToLeft

  • Size

  • TabIndex

  • TabStop

  • Text

  • Sichtbar

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

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Zuordnen von Eigenschaften mithilfe des Steuerelements „ElementHost“.

Windows Forms-Hosting Windows Presentation Foundation Interoperationsverhalten
BackColor

(System.Drawing.Color)
Background

(System.Windows.Media.Brush) beim gehosteten Element
Durch das Festlegen dieser Eigenschaft wird ein Neuzeichnen mit einem ImageBrush (Bildpinsel) erzwungen. Wenn die Eigenschaft BackColorTransparent auf false (den Standardwert) festgelegt ist, basiert dieser ImageBrush auf der Darstellung des Steuerelements ElementHost, einschließlich seiner Eigenschaften BackColor, BackgroundImage und BackgroundImageLayout sowie aller angefügten Paint-Handler.

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

(System.Drawing.Image)
Background

(System.Windows.Media.Brush) für das gehostete Element
Wenn diese Eigenschaft festgelegt wird, führt dies zu demselben Verhalten wie dem für die Zuordnung BackColor beschriebenen.
BackgroundImageLayout Background

(System.Windows.Media.Brush) für das gehostete Element
Wenn diese Eigenschaft festgelegt wird, führt dies zu demselben Verhalten wie dem für die Zuordnung BackColor beschriebenen.
Cursor

(System.Windows.Forms.Cursor)
Cursor

(System.Windows.Input.Cursor)
Der Windows Forms-Standardcursor wird in den entsprechenden WPF-Standardcursor übersetzt. Wenn der Windows Forms-Cursor kein Standardcursor ist, wird der Standardwert zugewiesen.
Enabled IsEnabled Wenn Enabled festgelegt wird, legt das Steuerelement ElementHost die Eigenschaft IsEnabled für das gehostete Element fest.
Font

(System.Drawing.Font)
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Der Wert Font wird in eine entsprechende Gruppe von WPF-Schriftarteigenschaften übersetzt.
Bold FontWeight für das gehostete -Element WennBoldtrue ist, wird FontWeight auf Bold festgelegt.

WennBoldfalse ist, wird FontWeight auf Normal festgelegt.
Italic FontStyle für das gehostete Element WennItalictrue ist, wird FontStyle auf Italic festgelegt.

WennItalicfalse 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 Steuerelement ElementHost legt die Eigenschaft Visibility für das gehostete Element mithilfe der folgenden Regeln fest:

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

Weitere Informationen