Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Steuerelemente

 

Veröffentlicht: Juni 2016

Im Lieferumfang von Windows Presentation Foundation (WPF) sind viele der üblichen Komponenten der Benutzeroberfläche enthalten, die in fast jeder Windows-Anwendung verwendet werden, wie z. B. Button, Label, TextBox, Menu und ListBox. Diese Objekte wurden bis jetzt immer als Steuerelemente bezeichnet. Während in WPF SDK der Begriff "Steuerelement" weiterhin für mehr oder minder jede Klasse verwendet wird, die ein sichtbares Objekt in einer Anwendung repräsentiert, sollten Sie beachten, dass eine Klasse nicht von der Control-Klasse erben muss, um eine sichtbare Präsenz zu haben. Klassen, die von der Control-Klasse erben, enthalten eine ControlTemplate, die dem Consumer eines Steuerelements erlaubt, die Darstellung des Steuerelements von Grund auf zu ändern, ohne dass eine neue Unterklasse erstellt werden muss. In diesem Thema wird erläutert, wie Steuerelemente (sowohl die, die von der Control-Klasse erben, als auch jene, für die dies nicht gilt) in WPF normalerweise verwendet werden.

Sie können einer Anwendung ein Steuerelement hinzufügen, indem Sie entweder Extensible Application Markup Language (XAML) oder Code verwenden. Im folgenden Beispiel wird das Erstellen einer einfachen Anwendung beschrieben, in der ein Benutzer nach dem Vornamen und dem Nachnamen gefragt wird. In diesem Beispiel werden sechs Steuerelemente erstellt: zwei Bezeichnungen, zwei Textfelder und zwei Schaltflächen in XAML. Alle Steuerelemente können auf ähnliche Weise erstellt werden.

Im folgenden Beispiel wird die gleiche Anwendung in Code erstellt. Aus Platzgründen wird die Erstellung des Grid-Elements, grid1, im Beispiel nicht aufgeführt. Für grid1 gelten die gleichen Spalten- und Zeilendefinitionen wie im vorangehenden XAML-Beispiel.

Die Darstellung eines Steuerelements wird häufig geändert, damit sie zum Aussehen und Verhalten der Anwendung passt. Sie können die Darstellung eines Steuerelements ändern, indem Sie eines der folgenden Verfahren ausführen. Welches Verfahren Sie verwenden, ist abhängig davon, welches Ergebnis Sie erzielen möchten.

  • Ändern des Werts einer Eigenschaft des Steuerelements

  • Erstellen von einem Style für das Steuerelement

  • Erstellen einer neuen ControlTemplate für das Steuerelement

Viele Steuerelemente haben Eigenschaften, mit denen Sie ändern können, wie das Steuerelement dargestellt wird, z. B. der Background eines Button-Elements. Sie können die Werteigenschaften sowohl in XAML als auch in Code festlegen. Im folgenden Beispiel werden die Background-Eigenschaft, die FontSize-Eigenschaft und die FontWeight-Eigenschaft auf einem Button-Element in XAML festgelegt.

Im folgenden Beispiel werden die gleichen Eigenschaften in Code festgelegt.

In WPF müssen Sie nicht Eigenschaften auf jeder Instanz in der Anwendung festlegen, sondern können die Darstellung von Steuerelementen global angeben, indem Sie einen Style erstellen. Im folgenden Beispiel wird ein Style erstellt, der auf jedes Button-Element in der Anwendung angewendet wird. Style-Definitionen werden normalerweise in XAML in einem ResourceDictionary definiert, beispielsweise die Resources-Eigenschaft für das FrameworkElement.

Sie können einen Stil auch nur für bestimmte Steuerelemente eines bestimmten Typs anwenden, indem Sie dem Stil einen Schlüssel zuweisen und diesen Schlüssel in der Style-Eigenschaft des Steuerelements angeben. Weitere Informationen zu Stilen finden Sie unter Erstellen von Formaten und Vorlagen.

Ein Style ermöglicht Ihnen, Eigenschaften auf mehreren Steuerelementen gleichzeitig festzulegen. Möglicherweise möchten Sie in manchen Fällen die Darstellung für ein Control so ändern, dass ein Style nicht ausreicht. Klassen, die von der Control-Klasse erben, besitzen eine ControlTemplate, die die Struktur und Darstellung für ein Control definiert. Die Template-Eigenschaft eines Control-Elements ist öffentlich, sodass Sie einem Control eine ControlTemplate zuweisen können, die von der Standardvorlage abweicht. Um die Darstellung für ein Control anzupassen, können Sie häufig eine neue ControlTemplate für ein Control angeben, statt von einem Steuerelement zu erben.

Betrachten Sie das sehr häufig vorkommende Steuerelement Button. Das primäre Verhalten eines Button-Elements ist, einer Anwendung zu ermöglichen, eine Aktion auszuführen, wenn der Benutzer auf die Schaltfläche klickt. Standardmäßig wird das Button-Element in WPF als erhobenes Rechteck angezeigt. Wenn Sie eine Anwendung entwickeln, möchten Sie möglicherweise das Verhalten eines Button-Elements dadurch nutzen, dass Sie das Klick-Ereignis der Schaltfläche behandeln. Möglicherweise nehmen Sie aber mehr Änderungen an der Darstellung der Schaltfläche vor, als durch das Ändern der Schaltflächeneigenschaften möglich ist. In diesem Fall können Sie eine neue ControlTemplate erstellen.

Im folgenden Beispiel wird eine ControlTemplate für ein Button-Element erstellt. Die ControlTemplate erstellt ein Button-Element mit abgerundeten Ecken und einem Farbverlaufshintergrund. Die ControlTemplate enthält ein Border-Element, dessen Background ein LinearGradientBrush mit zwei GradientStop-Objekten ist. Das erste GradientStop-Objekt verwendet die Datenbindung, um die Color-Eigenschaft des GradientStop-Objekts an die Hintergrundfarbe der Schaltfläche zu binden. Wenn Sie die Background-Eigenschaft des Button-Elements festlegen, wird die Farbe dieses Werts als erster GradientStop verwendet. Weitere Informationen zur Datenbindung finden Sie unter Übersicht über Datenbindung. Im Beispiel wird auch ein Trigger erstellt, der die Darstellung des Button-Elements ändert, wenn IsPressedtrue ist.

System_CAPS_noteHinweis

Die Background-Eigenschaft des Button-Elements muss auf einen SolidColorBrush festgelegt werden, damit das Beispiel ordnungsgemäß ausgeführt werden kann.

Sie können das Ereignis eines Steuerelements abonnieren, indem Sie entweder XAML oder Code verwenden, jedoch können Sie in Code nur ein Ereignis behandeln. Im folgenden Beispiel wird veranschaulicht, wie Sie das Click-Ereignis eines Button-Elements abonnieren.

Im folgenden Beispiel wird das Click-Ereignis eines Button-Elements behandelt.

Die meisten Klassen, die von der Control-Klasse erben, können umfangreichen Inhalt enthalten. Zum Beispiel kann ein Label-Element ein beliebiges Objekt enthalten, z. B. eine Zeichenfolge, ein Image oder ein Panel-Element. Die folgenden Klassen bieten Unterstützung für umfangreichen Inhalt und dienen als Basisklassen für die meisten Steuerelemente in WPF.

Weitere Informationen zu diesen Basisklassen finden Sie unter WPF-Inhaltsmodell.

Anzeigen: