Formatierungstipps für das "ComboBox"-Steuerelement
Das ComboBox-Steuerelement ist ein Objekt, das aus einem nicht bearbeitbarem Textfeld und einem Popup-Steuerelement besteht. Das Popup-Steuerelement enthält ein ListBox-Steuerelement, in dem Benutzer ein Element aus einer Liste auswählen können.
Wie alle Steuerelemente kann das ComboBox-Steuerelement (also auch Popup-, ListBox- und alle anderen im ComboBox-Element enthaltenen Objekte) geändert werden, um dem Element ein Aussehen zu verleihen, das vom Design des Standardelements abweicht. Das Standarddesign des ComboBox-Elements sieht folgendermaßen aus:
Wichtige "ComboBox"-Steuerelementeigenschaften
Sie können das im ComboBox-Steuerelement ausgewählte Element festlegen, indem Sie die SelectedIndex-Eigenschaft unter Allgemeine Eigenschaften im Eigenschaftenpanel festlegen. Der Wert -1 zeigt das ComboBox-Objekt an, ohne dass eine Auswahl getroffen wurde. Der Wert 0 zeigt das ComboBox-Objekt mit dem ersten ausgewählten Element an.
Um dem ComboBox-Steuerelement Elemente hinzuzufügen, können Sie manuell ComboBoxItem-Objekte hinzufügen, oder Sie können eine Datenauflistung mit dem ComboBox-Objekt verknüpfen, um die Elemente automatisch anzeigen zu lassen.
Weitere Informationen finden Sie unter Binden eines Objekts an Daten und Erstellen von Beispieldaten.
Teile der ComboBox-Vorlage
Das ComboBox-Steuerelement verwendet eine Vorlage, in dem die Darstellung des Dropdownfelds, des Dropdownpfeils und des Popupfensters definiert ist: die ComboBox-Vorlage. Jeder Teil der Vorlage übernimmt eine bestimmte Rolle hinsichtlich der Darstellung und des Verhaltens des ComboBox-Objekts, auf das die Vorlage angewendet wird.
Tipp: |
---|
Um die Elemente eines ComboBox-Steuerelements gestalten zu können, müssen weitere Vorlagen geändert werden. Wenn z. B ein ComboBox-Steuerelement datengebunden ist, handelt es sich bei der Vorlage, die das Steuerelement zur Gestaltung der Elemente verwendet, um eine generierte Elementvorlage (Datenvorlage). Wenn das ComboBox-Steuerelement nicht datengebunden ist, steht keine Vorlage zur Verfügung, die das Steuerelement auf die Elemente anwenden kann, die im Steuerelement enthalten sind. Stattdessen ändern Sie die Vorlage der einzelnen Elemente wie etwa die ComboBoxItem-Vorlage. |
Es können andere Objekte in der Vorlage enthalten sein, um die Darstellung des ComboBox-Steuerelements optisch aufzubessern. Allerdings ist das Verhalten der Teile, die in der folgenden Tabelle aufgeführt werden, an einen Vertrag gebunden.
Wenn Sie die Teile der Vorlage anzeigen möchten, öffnen Sie das Teilepanel während der Bearbeitung der Vorlage. Im Panel Objekte und Zeitachsen wird neben jedem Objekt, das die Rolle eines Teils im Teilepanel übernimmt, ein Symbol angezeigt.
Teilename |
Objekttyp |
Beschreibung |
---|---|---|
ContentPresenter |
ContentPresenter |
Objekt, das das aktuell ausgewählte Element anzeigt, wenn das ComboBox-Steuerelement nicht erweitert ist. Dieses Teil ist obligatorisch. |
ContentPresenterBorder |
FrameworkElement |
Layoutpanel, das den oberen Teil des ComboBox-Steuerelements enthält. Dieses Teil ist obligatorisch. |
DropDownToggle |
ToggleButton |
Schaltfläche, die ein ComboBox-Steuerelement erweitert, wenn auf die Schaltfläche geklickt wird. Die Schaltfläche enthält standardmäßig ein Pfadobjekt, das einen Pfeil darstellt. Sie können aber auch ein Bild verwenden. |
Popup |
Popup |
Popup-Objekt, das den Inhalt eines ComboBox-Steuerelements anzeigt. Dieses Teil ist obligatorisch. |
Status des "ComboBox"-Steuerelements
Standardmäßig kann das ComboBox-Steuerelement in der CommonStates-Statusgruppe einen der drei folgenden Zustände annehmen. Die Statusgruppe können Sie im Zuständepanel anzeigen, während Sie eine ComboBox-Vorlage ändern:
Zustandsname |
Beschreibung |
---|---|
Normal |
Die Darstellung des ComboBox-Steuerelements, wenn keine Interaktion mit dem Steuerelement stattfindet. |
MouseOver |
Darstellung des ComboBox-Steuerelements, wenn der Mauszeiger über einem Steuerelement bewegt wird |
Disabled (Deaktiviert) |
Die Darstellung des ComboBox-Steuerelements, wenn die IsEnabled-Eigenschaft auf False gesetzt ist. |
Das ComboBox-Steuerelement kann sich in einem von zwei Status der FocusStates-Statusgruppe befinden:
Zustandsname |
Beschreibung |
---|---|
Unfocused (Ohne Fokus) |
Darstellung des ComboBox-Steuerelements, wenn sich der Fokus nicht auf der Tastatur befindet |
Focused (Mit Fokus) |
Darstellung des ComboBox-Steuerelements, wenn es über einen Tastaturfokus verfügt und nicht erweitert ist. So kann z. B. ein Benutzer TAB drücken, um die Objekte seiner Anwendung zu durchlaufen, bis sich der Tastaturfokus auf dem ComboBox-Steuerelement befindet. |
FocusedDropDown (Mit Fokus, erweitert) |
Darstellung des ComboBox-Steuerelements, wenn es über einen Tastaturfokus verfügt und erweitert ist. |
Das ComboBox-Steuerelement kann einen der drei folgenden Status der ValidationStates-Statusgruppe annehmen:
Zustandsname |
Beschreibung |
---|---|
Valid (Gültig) |
Darstellung des ComboBox-Steuerelements, wenn das Steuerelement gültig ist. |
InvalidUnfocused (Ungültig, ohne Fokus) |
Darstellung des ComboBox-Steuerelements, wenn das Steuerelement ungültig ist und über keinen Tastaturfokus verfügt. |
InvalidFocused (Ungültig, mit Fokus) |
Darstellung des ComboBox-Steuerelements, wenn das Steuerelement ungültig ist und über einen Tastaturfokus verfügt. |
Tipp: |
---|
Eine Statusgruppe enthält die visuellen Status, die Teil derselben logischen Kategorie sind und die nicht gleichzeitig angezeigt werden können. Beispiel: Die Gruppe CommonStates beinhaltet Zustände, die sich auf die Benutzerinteraktion mit einem Eingabegerät wie der Maus beziehen. In einer Statusgruppe kann immer nur ein Status angezeigt werden. Ein Status aus einer Gruppe kann jedoch gleichzeitig als Status in einer anderen Gruppe angezeigt werden. |
Wenn Sie einen Status auswählen, wird die Statusaufzeichnung aktiviert und die vorgenommenen Änderungen für diesen Status werden aufgezeichnet. Um die Statusaufzeichnung zu deaktivieren, klicken Sie auf die Aufzeichnungsschaltfläche auf der Zeichenfläche, oder wählen Sie Basis im Zuständepanel aus. Um die Darstellung des Steuerelements zu ändern, wenn zwei separate Status aktiv sind, können Sie in einer Statusgruppe eine Vorschau eines Status einpassen, während Sie in einer anderen Statusgruppe einen Status ändern.
Konvertieren von Objekten in "ComboBox"-Steuerelemente
Führen Sie einen der folgenden Schritte aus, um die Vorlage eines ComboBox-Steuerelements zu ändern:
Zeichnen Sie eine ComboBox auf die Zeichenfläche, und erstellen Sie eine Kopie der Standardvorlage.
Weitere Informationen finden Sie unter Erstellen oder Bearbeiten einer Vorlage.
Entwerfen Sie ein ComboBox-Steuerelement, indem Sie Objekte zeichnen oder Bilder importieren, und verwenden Sie dann den Befehl Steuerelement erstellen.
Wenn Sie den Befehl Steuerelement erstellen verwenden, führen Sie folgende Schritte aus, um sicherzustellen, dass Sie alle Objekte erstellt haben, die für eine ComboBox-Vorlage erforderlich sind:
Gruppieren Sie alle Objekte, die die Darstellung des ComboBox-Steuerelements definieren sollen, in ein Grid-Steuerelement.
Wählen Sie das neue Grid-Steuerelement aus, und klicken Sie dann im Menü Werkzeug auf Steuerelement erstellen.
Wählen Sie ComboBox im angezeigten Dialogfeld aus, geben Sie der Vorlage einen Namen, und wählen Sie den Speicherort aus, an dem die Vorlage gespeichert werden soll.
Weitere Informationen zu Speicherorten finden Sie unter Erstellen einer Ressource.
Nachdem Sie auf OK geklickt haben, öffnet Microsoft Expression Blend den Vorlagenbearbeitungsmodus und zeigt die Objekte an, aus denen sich das ComboBox-Steuerelement zusammensetzt. Sie können die Vorlage in diesem Modus weiter ändern. Ändern Sie z. B. Objekte, oder fügen Sie Objekte hinzu, oder wählen Sie einen Status im Zuständepanel aus, um die Darstellung der Vorlage in diesem Status zu ändern.
Wenn in der Gruppe der ursprünglichen Objekte ein TextBlock-Objekt enthalten gewesen ist , wird das TextBlock-Objekt in der ComboBox-Steuerelementvorlage in ein ContentPresenter-Objekt konvertiert . Dies ermöglicht dem ComboBox-Objekt, Text anzuzeigen. Wenn die usprünglichen Objekte kein TextBlock-Objekt enthalten, wird der Vorlage automatisch ein ContentPresenter-Objekt hinzugefügt.
Wenn dem ContentPresenter-Objekt in der Vorlage nocht nicht der richtige Teil zugewiesen worden ist, klicken Sie mit der rechten Maustaste auf das ContentPresenter-Objekt, zeigen Sie auf Teil der ComboBox erstellen, und klicken Sie auf ContentPresenter.
Optional können Sie andere Objekte im ContentPresenter-Objekt hinzufügen oder verschieben, wenn Sie diese Objekte im ComboBox-Steuerelement anzeigen möchten, auch dann, wenn gerade kein Element ausgewählt ist.
Wenn Sie Objekte oder Vorlagen als Dropdownpfeil des ComboBox-Steuerelements verwenden möchten, führen Sie folgende Schritte aus:
Gruppieren Sie die Objekte oder Vorlagen in ein Layoutpanel.
Klicken Sie mit der rechten Maustaste auf das Layoutpanel.
Zeigen Sie auf Teil der ComboBox erstellen.
Klicken Sie auf DropDownToggle.
Dies ersetzt die Objekte durch ein ToggleButton-Objekt. Die Objekte werden verwendet, um den Stil und die Vorlage zu erstellen, die auf das ToggleButton-Objekt angewendet werden.
Geben Sie im Dialogfeld Teil erstellen einen Namen für den ToggleButton-Stil ein, der erstellt werden soll.
Wählen Sie einen Speicherort aus, an dem der Stil gespeichert werden soll, und klicken Sie auf OK.
Im Vorlagenbearbeitungsmodus für ein neues ToggleButton-Objekt können Sie weitere Änderungen vornehmen. So können Sie z. B. das ContentPresenter-Objekt löschen (wenn Sie keinen Text im ToggleButton-Objekt anzeigen möchten), oder wählen Sie einen Status im Zuständepanel aus, um die Darstellung des ToggleButton-Objekts in diesem Status anzuzeigen.
Um in den Vorlagenbearbeitungsmodus für das ComboBox-Steuerelement zurückzukehren, klicken Sie im Panel Objekte und Zeitachsen auf Zurück zum Anfang , oder klicken Sie in der Breadcrumb-Leiste am oberen Rand der Zeichenfläche auf DropDownToggle.
Hinweis: Der DropDownToggle-Teil ist optional, da auch der mit einer größeren Klickfläche ausgestattete ContentPresenterBorder angeklickt werden kann, um die Liste der Elemente der ComboBox-Steuerelemente zu öffnen.
Der Popup-Teil zeigt die Elemente des ComboBox-Steuerelements an. Ein ItemsPresenter-Objekt wird in der Regel verwendet, um eine Liste von Elementen anzuzeigen. Das ItemsPresenter-Objekt wird normalerweise in einem ScrollViewer-Steuerelement angezeigt, um Bildlauffunktionalität bereitzustellen. Um ein Popup-Teil zu erstellen, führen Sie folgende Schritte aus:
Wählen Sie im Panel Objekte und Zeitachsen das Stammlayoutpanel aus.
Doppelkklicken Sie im Teilepanel auf das Popup-Teil, um ein Popup-Objekt im Stammverzeichnis der Vorlage zu erstellen.
Zeichnen Sie im neuen Popup-Objekt ein neues ItemsPresenter-Steuerelement.
Verwenden Sie das Auswahlwerkzeug , um Größe und Lage des Popups zu ändern.
Wählen Sie für die Erstellung des ContentPresenterBorder-Teils nur Ihren ContentPresenter und den optionalenToggleButton aus, zeigen Sie auf Gruppieren in im Menü Objekt, und wählen Sie ein Layoutpanel aus. Klicken Sie mit der rechten Maustaste auf das neue Layoutpanelobjekt, zeigen Sie auf Teil der ComboBox erstellen, und klicken Sie auf ContentPresenterBorder.
Sie können ggf. einige Pinseleigenschaften von Objekten in der Vorlage mit folgenden Eigenschaften des ComboBox-Objekts verbinden, die die Vorlage unter Umständen verwendet:
Background
BorderBrush
Foreground
BorderThickness
Weitere Informationen finden Sie unter Übernehmen von Objekteigenschaften für die Vorlage.
Um den Vorlagenbearbeitungsmodus zu verlassen, klicken Sie in der Breadcrumb-Leiste am oberen Rand der Zeichenfläche auf [ComboBox], oder klicken Sie im Panel Objekte und Zeitachsen auf Zurück zum Anfang .
Weitere Informationen zur Anwendung einer neuen ComboBox-Vorlage auf andere ComboBox-Objekte finden Sie unter Anwenden oder Entfernen einer Ressource.
Verweise
Detaillierte Informationen zu den Eigenschaften und Ereignissen des Microsoft Silverlight-ComboBox-Steuerelements finden Sie in der Silverlight Control Gallery (möglicherweise in englischer Sprache) in MSDN.
Siehe auch
Konzepte
Gestaltungstipps für häufig verwendete Silverlight-Steuerelemente
SimpleComboBox-Steuerelementvorlage und SimpleComboBoxItem-Steuerelementvorlage