SimpleCheckBox-Steuerelementvorlage
Das Kontrollkästchen ist ein ContentControl-Element, das zum Umschalten zwischen drei verschiedenen Zuständen dient: aktiviert, nicht aktiviert und unbestimmt. Der IsChecked-Zustand gibt an, ob das Kontrollkästchen aktiviert ist. Sie können Inhalte in einem Kontrollkästchen in Microsoft Expression Blend platzieren, indem Sie auf das Kontrollkästchen doppelklicken und ein Element darin zeichnen. Wenn Sie mehrere Elemente innerhalb des Kontrollkästchens platzieren möchten, fügen Sie zuerst ein LayoutPanel-Element ein, wie z. B. ein Raster- oder Canvaspanel. Ein Kontrollkästchen kann auch standardmäßig Text anzeigen. Klicken Sie mit der rechten Maustaste auf das Kontrollkästchen, und klicken Sie dann auf Text bearbeiten, um den Text zu bearbeiten.
Die Zeichenflächenansicht eines SimpleCheckBox-Steuerelements
Aufgliederung der Steuerelementvorlage
Die SimpleCheckBox-Steuerelementvorlage umfasst die folgenden Elemente:
Ein BulletDecorator-Container, der zum Ausrichten des Kontrollkästchens am Text verwendet wird. Ein BulletDecorator-Container kann 2 untergeordnete Elemente aufnehmen: Ein Bullet-Element und ein Inhaltselement (wie ein ContentPresenter-Element). Der BulletDecorator-Container wird in anderen Steuerelementen (wie dem RadioButton-Steuerelement) verwendet, in denen Text an anderen Elementen ausgerichtet werden muss.
Das Bullet-Element, das ein Rasterpanel enthält, in dem wiederum ein Path-Element mit der Bezeichnung CheckMark und ein Border-Element enthalten sind. Das Path-Element wird zum Zeichnen der "x"-Markierung verwendet.
Ein ContentPresenter-Element, das verwendet wird, um die Content-Eigenschaft des Kontrollkästchens anzuzeigen, auf das diese Vorlage angewendet wird. Dieses Element muss vorhanden sein, um den Inhalt des Kontrollkästchens anzuzeigen.
Objektansicht: Die grundlegenden Teile (Vorlage) eines SimpleCheckBox-Steuerelements
Verwendete Eigenschaftsauslöser
Eigenschaftsauslöser in der Steuerelementvorlage werden verwendet, damit das Steuerelement auf Änderungen der Eigenschaften reagieren kann. Sie können im Auslöserpanel auf die Elemente klicken, um die Eigenschaften anzuzeigen, die bei einem aktiven Auslöser geändert werden. Wenn beispielsweise in der SimpleCheckBox-Steuerelementvorlage für die IsChecked-Eigenschaft der Wert False festgelegt ist, wird die Sichtbarkeit des CheckMark-Pfadelements in Collapsed geändert. In anderen Auslösern ändern Sie den Hintergrund des Border-Elements mit Pinselressourcen.
Verwendete Pinsel
Die folgenden Pinselressourcen im Ressourcenverzeichnis SimpleStyles.xaml werden von der SimpleCheckBox-Steuerelementvorlage verwendet:
Die Background-Eigenschaft des Border-Elements wird mit der NormalBrush-Ressource festgelegt, wenn kein Auslöser aktiv ist, mit der MouseOverBrush-Ressource, wenn für die IsMouseOver-Eigenschaft der Wert True gilt, mit der PressedBrush-Ressource, wenn für die IsPressed-Eigenschaft der Wert True gilt, und mit der DisabledBackgroundBrush-Ressource, wenn für die IsEnabled-Eigenschaft der Wert False gilt.
Die BorderBrush-Eigenschaft wird mit der NormalBorderBrush-Ressource festgelegt, wenn kein Auslöser aktiv ist, mit der PressedBorderBrush-Ressource, wenn für die IsPressed-Eigenschaft der Wert True gilt, und mit der DisabledBorderBrush-Ressource, wenn für die IsEnabled-Eigenschaft der Wert False gilt.
Die Foreground-Eigenschaft wird mit der DisabledForegroundBrush-Ressource festgelegt, wenn für die IsEnabled-Eigenschaft der Wert False gilt.
Die Stroke-Eigenschaft des CheckMark-Elements verwendet die GlyphBrush-Ressource, um die "x"-Markierung zu zeichnen.
Bewährte Methoden und Designrichtlinien
Verwenden Sie ein Grid-Steuerelement als Stamm Ihrer Vorlage, wenn Sie davon ausgehen, dass ein Designer einer Benutzeroberfläche (UI) weitere visuelle Elemente zu Ihrem Steuerelement hinzufügt. Expression Blend sucht nach einem LayoutPanel-Element wie dem Grid-Steuerelement und legt es standardmäßig als aktives Element fest. Beim Hinzufügen neuer Elemente zur Zeichenfläche werden diese als untergeordnete Elemente in das LayoutPanel-Element eingefügt.
Der Inhalt des Kontrollkästchens wird durch ein ContentPresenter-Element angezeigt. ContentPresenter-Elemente binden die Vorlage automatisch an die Content-Eigenschaft des Steuerelements, auf das die Vorlage angewendet wird. Dieses Element muss für das Kontrollkästchen vorhanden sein, um den Inhalt aus dem vorlagenbasierten übergeordneten Element anzuzeigen.
In manchen Fällen weist das von Ihnen verwendete Steuerelement nicht ausreichend Attribute auf, um die Bindung an die Steuerelementvorlage zu ermöglichen. Beispielsweise stellt das CheckBox-Steuerelement kein Attribut bereit, um den Pinsel für das CheckMark-Element festzulegen. In diesem Fall ist der Strich des CheckMark-Elements auf einen Pinsel festgelegt, sodass die Änderung erleichtert wird. Sie können eine benutzerdefinierte Klasse basierend auf dem CheckBox-Steuerelement erstellen und weitere Attribute hinzufügen, um eine Bindung mit diesen oder mit einem der vorhandenen Attribute herzustellen. Ein Beispiel für eine benutzerdefinierte Klasse finden Sie unter Weiterführende Themen: Erstellen eines benutzerdefinierten Steuerelements mit benutzerdefinierten Eigenschaften in diesem Benutzerhandbuch.
Das Grid-Element weist eine feste Größe auf, da Sie das CheckMark-Pfadelement aus- und einblenden. Wenn das Grid-Element keine feste Größe hat, wird der Text im ContentPresenter-Element verschoben, falls sich die Auswahl für das Kontrollkästchen ändert. Als Alternative zu einer festen Rastergröße und dem Ausblenden des CheckMark-Pfades können Sie die Einstellung für die Deckkraft der Stroke-Eigenschaft des CheckMark-Pfadobjekts in den Wert 0 ändern.