Zuordnung von Windows Forms- und WPF-Eigenschaften
Die Windows Forms- und WPF-Technologien weisen zwei ähnliche, aber unterschiedliche Eigenschaftenmodelle auf. 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 einfaches Entfernen, Außerkraftsetzen oder Erweitern von Standardeigenschaften.
Stellt sicher, dass Eigenschaftswertänderungen auf dem Host automatisch erkannt und in das gehostete Steuerelement oder Element übersetzt werden.
Anmerkung
Ereignisse von Eigenschaftsänderungen werden nicht an übergeordnete Steuerungselemente oder die Elementhierarchie weitergeleitet. Die Eigenschaftsübersetzung wird nicht ausgeführt, wenn sich der lokale Wert einer Eigenschaft aufgrund direkter Einstellungen, Formatvorlagen, Vererbung, Datenbindung oder anderer Mechanismen, die den Wert der Eigenschaft ändern, nicht ändert.
Verwenden Sie die Eigenschaft PropertyMap am Element WindowsFormsHost und die Eigenschaft PropertyMap am Steuerelement ElementHost, 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.
Hosting von Windows Presentation Foundation | Windows-Formulare | Interoperabilitätsverhalten |
---|---|---|
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 erfolgt mithilfe der folgenden Regeln: - Wenn Background eine Volltonfarbe ist, wird sie konvertiert und verwendet, um die BackColor Eigenschaft 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. Hinweis: Das gehostete Steuerelement unterstützt keine Transparenz. Jede Farbe, die BackColor zugewiesen ist, muss vollständig undurchsichtig sein, mit einem Alphawert von 0xFF. - Wenn Background keine Volltonfarbe ist, erstellt die WindowsFormsHost-Steuerung 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. Hinweis: Sie können dieses Verhalten außer Kraft setzen oder die Background Eigenschaftenzuordnung entfernen. |
Cursor | Cursor | Wenn die Standardzuordnung nicht neu zugewiesen wurde, durchläuft WindowsFormsHost Steuerelement seine Vorgängerhierarchie, bis es einen Vorgänger mit dem Cursor Eigenschaftensatz findet. Dieser Wert wird in den am besten passenden Windows Forms-Cursor übersetzt. Wenn die Standardzuordnung für die Eigenschaft ForceCursor nicht neu zugewiesen wurde, stoppt der Durchlauf beim ersten Vorfahren, bei dem ForceCursor auf true festgelegt ist. |
FlowDirection (System.Windows.FlowDirection) |
RightToLeft (System.Windows.Forms.RightToLeft) |
LeftToRight wird auf Noabgebildet. RightToLeft wird Yeszugeordnet. Inherit ist nicht zugeordnet. FlowDirection.RightToLeft weist RightToLeft.Yeszu. |
FontStyle | Style im 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 ist deaktiviert. Für Italic oder Oblique: Italic ist aktiviert. |
FontWeight | Style im System.Drawing.Font des gehosteten Steuerelements | Der Satz von WPF-Eigenschaften wird in eine entsprechende Fontübersetzt. Wenn sich eine der Eigenschaften ändert, wird ein neues Font erstellt. Für Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBoldoder UltraBold: 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 ein entsprechendes Fontübersetzt. Wenn sich eine dieser Eigenschaften ändert, wird eine neue Font erstellt. Das gehostete Windows Forms-Steuerelement ändert die Größe basierend auf der Schriftgröße. In WPF wird die Schriftgröße 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: - Wenn Foreground ein SolidColorBrushist, verwenden Sie Color für ForeColor. - Wenn Foreground ein GradientBrushist, nutzen Sie die Farbe des GradientStop, das den niedrigsten Offsetwert aufweist, 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 ist, legt WindowsFormsHost Element die Enabled-Eigenschaft für das gehostete Steuerelement fest. |
Padding | Padding | Alle vier Werte der Padding-Eigenschaft des gehosteten Windows-Forms-Steuerelements werden auf denselben Thickness-Wert gesetzt. - Werte größer als MaxValue werden auf MaxValuefestgelegt. - Werte, die kleiner als MinValue sind, werden auf MinValuefestgelegt. |
Visibility | Visible | - Visible entspricht Visible = true . Das gehostete Windows Forms-Steuerelement ist sichtbar. Das explizite Festlegen der Visible-Eigenschaft für das gehostete Steuerelement auf false wird nicht empfohlen.- Collapsed entspricht Visible = true oder false . Das gehostete Windows Forms-Steuerelement wird nicht angezeigt, und sein Bereich wird zusammengeklappt.- Hidden: Das gehostete Windows Forms-Steuerelement belegt Platz im Layout, ist jedoch nicht sichtbar. In diesem Fall wird die eigenschaft Visible auf true festgelegt. Das explizite Festlegen der Visible-Eigenschaft für das gehostete Steuerelement auf false wird nicht empfohlen. |
Zugeordnete Eigenschaften für Containerelemente werden vom WindowsFormsHost-Element vollständig unterstützt.
Weitere Informationen finden Sie unter Anleitung: Zuordnung von Eigenschaften mithilfe des WindowsFormsHost-Elements.
Aktualisierungen von übergeordneten Eigenschaften
Änderungen an den meisten übergeordneten Eigenschaften verursachen Benachrichtigungen an 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
BindingContext
ErfordertValidierung
Kontextmenü
ContextMenuStrip
Cursor
Dock
Aktiviert
Schriftart
ForeColor
Ort
Rand
Polsterung
Elternteil
Region
Rechts-nach-Links
Größe
TabIndex
Tabulatorstopp
Text
Sichtbar
Das Steuerelement ElementHost übersetzt die Standard-Windows Forms-Eigenschaften in ihre WPF-Entsprechungen mithilfe der folgenden Übersetzungstabelle.
Weitere Informationen finden Sie unter Walkthrough: Mapping Properties Using the ElementHost Control.
Windows Forms-Verwaltung | Windows-Darstellungsgrundlage | Interoperabilitätsverhalten |
---|---|---|
BackColor (System.Drawing.Color) |
Background (System.Windows.Media.Brush) auf dem gehosteten Element |
Das Festlegen dieser Eigenschaft erzwingt eine Neudarstellung mit einem ImageBrush. Wenn die BackColorTransparent-Eigenschaft auf false (Standardwert) festgelegt ist, basiert diese ImageBrush auf der Darstellung des ElementHost-Steuerelements, einschließlich der BackColor, BackgroundImage, BackgroundImageLayout Eigenschaften und aller angefügten Paint-Handler.Wenn die BackColorTransparent-Eigenschaft auf true festgelegt ist, basiert die ImageBrush auf der Darstellung des Steuerelements ElementHost und seines übergeordneten Elements, einschließlich der BackColordes übergeordneten Elements, BackgroundImage, BackgroundImageLayout-Eigenschaften und allen angefügten Paint-Handlern. |
BackgroundImage (System.Drawing.Image) |
Background (System.Windows.Media.Brush) auf dem gehosteten Element |
Das Einstellen dieser Eigenschaft bewirkt das gleiche Verhalten, das für das BackColor-Mapping beschrieben wird. |
BackgroundImageLayout | Background (System.Windows.Media.Brush) auf dem gehosteten 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 in den entsprechenden WPF-Standardcursor umgewandelt. Wenn windows Forms kein Standardcursor ist, wird die Standardeinstellung 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-Font-Eigenschaften übersetzt. |
Bold | FontWeight bei gehostetem Element | Wenn Boldtrue ist, wird FontWeight auf Boldfestgelegt.Wenn Bold false ist, wird FontWeight auf Normalfestgelegt. |
Italic | FontStyle für gehostetes Element | Wenn Italictrue ist, wird FontStyle auf Italicfestgelegt.Wenn Italic false ist, wird FontStyle auf Normalfestgelegt. |
Strikeout | TextDecorations bei gehostetem Element | Gilt nur, wenn ein TextBlock-Steuerelement gehostet wird. |
Underline | TextDecorations für ein gehostetes Element | Gilt nur, wenn ein Steuerelement TextBlock gehostet wird. |
RightToLeft (System.Windows.Forms.RightToLeft) |
FlowDirection (FlowDirection) |
No ordnet zu LeftToRight. Yes wird zugeordnet zu RightToLeft. |
Visible | Visibility | Das ElementHost-Steuerelement legt die Visibility-Eigenschaft für das gehostete Element mithilfe der folgenden Regeln fest: - Visible = true wird zugeordnet zu Visible.- Visible = false wird zugeordnet zu Hidden. |
Siehe auch
- ElementHost
- WindowsFormsHost
- Interoperabilität zwischen WPF und Win32
- WPF- und Windows Forms-Interoperabilität
- Exemplarische Vorgehensweise: Zuordnen von Eigenschaften mithilfe des WindowsFormsHost-Elements
- Schritt-für-Schritt-Anleitung: Eigenschaften mithilfe des ElementHost-Steuerelements zuordnen
.NET Desktop feedback