Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
VisualStateManager-Klasse
Verwaltet Zustände und die Logik für Übergänge zwischen Zuständen für Steuerelemente.
System.Windows.Threading.DispatcherObject
System.Windows.DependencyObject
System.Windows.VisualStateManager
Assembly: PresentationFramework (in PresentationFramework.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
Der VisualStateManager-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
VisualStateManager | Initialisiert eine neue Instanz der VisualStateManager-Klasse. |
| Name | Beschreibung | |
|---|---|---|
|
DependencyObjectType | Ruft den DependencyObjectType ab, der den CLR-Typ dieser Instanz umschließt. (Von DependencyObject geerbt.) |
|
Dispatcher | Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist. (Von DispatcherObject geerbt.) |
|
IsSealed | Ruft einen Wert ab, der angibt, ob diese Instanz derzeit versiegelt (schreibgeschützt) ist. (Von DependencyObject geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
CustomVisualStateManager | Ruft das VisualStateManager-Objekt ab, das zwischen den Zuständen eines Steuerelements wechselt, oder legt dieses fest. |
|
VisualStateGroups | Ruft eine Auflistung der VisualStateGroup-Objekte ab oder legt diese fest. |
| Name | Beschreibung | |
|---|---|---|
|
CheckAccess | Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.) |
|
ClearValue(DependencyProperty) | Löscht den lokalen Wert einer Eigenschaft. Die zu löschende Eigenschaft wird mit einem DependencyProperty-Bezeichner angegeben. (Von DependencyObject geerbt.) |
|
ClearValue(DependencyPropertyKey) | Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die zu löschende Eigenschaft wird mit einem DependencyPropertyKey angegeben. (Von DependencyObject geerbt.) |
|
CoerceValue | Wandelt den Wert der angegebenen Abhängigkeitseigenschaft um. Für die Umwandlung wird eine vorhandene CoerceValueCallback-Funktion aufgerufen, die in den Metadaten der Abhängigkeitseigenschaft für das aufrufende DependencyObject angegeben ist. (Von DependencyObject geerbt.) |
|
Equals | Bestimmt, ob ein angegebenes DependencyObject dem aktuellen DependencyObject entspricht. (Von DependencyObject geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
GetCustomVisualStateManager | Ruft die angefügte CustomVisualStateManager-Eigenschaft ab. |
|
GetHashCode | Ruft einen Hashcode für dieses DependencyObject ab. (Von DependencyObject geerbt.) |
|
GetLocalValueEnumerator | Erstellt einen spezialisierten Enumerator, mit dem bestimmt wird, welche Abhängigkeitseigenschaften dieses DependencyObject über lokal festgelegte Werte verfügen. (Von DependencyObject geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
GetValue | Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft in dieser Instanz eines DependencyObject zurück. (Von DependencyObject geerbt.) |
|
GetVisualStateGroups | Ruft die angefügte VisualStateManager.VisualStateGroups-Eigenschaft ab. |
|
GoToElementState | Wechselt zwischen zwei Zuständen des Elements. Verwenden Sie diese Methode zum Wechseln von Zuständen, die von einer Anwendung und nicht von einem Steuerelement definiert werden. |
|
GoToState | Wechselt zwischen zwei Zuständen des Steuerelements. Verwenden Sie diese Methode für Übergänge zwischen Zuständen in Steuerelementen mit ControlTemplate. |
|
GoToStateCore | Wechselt zwischen den Zuständen eines Steuerelements. |
|
InvalidateProperty | Berechnet den effektiven Wert für die angegebene Abhängigkeitseigenschaft neu (Von DependencyObject geerbt.) |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
OnPropertyChanged | Wird immer dann aufgerufen, wenn der tatsächliche Wert einer Abhängigkeitseigenschaft eines DependencyObject aktualisiert wurde. Die spezifische Abhängigkeitseigenschaft, die sich geändert hat, wird in den Ereignisdaten angegeben. (Von DependencyObject geerbt.) |
|
RaiseCurrentStateChanged | Löst das CurrentStateChanging-Ereignis für das angegebene VisualStateGroup-Objekt aus. |
|
RaiseCurrentStateChanging | Löst das CurrentStateChanging-Ereignis für das angegebene VisualStateGroup-Objekt aus. |
|
ReadLocalValue | Gibt, sofern vorhanden, den lokalen Wert einer Abhängigkeitseigenschaft zurück. (Von DependencyObject geerbt.) |
|
SetCurrentValue | Legt den Wert einer -Abhängigkeitseigenschaft fest, ohne die Wertquelle zu ändern. (Von DependencyObject geerbt.) |
|
SetCustomVisualStateManager | Legt die angefügte CustomVisualStateManager-Eigenschaft fest. |
|
SetValue(DependencyProperty, Object) | Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die über ihren Bezeichner angegeben wird. (Von DependencyObject geerbt.) |
|
SetValue(DependencyPropertyKey, Object) | Legt den lokalen Wert einer schreibgeschützten Abhängigkeitseigenschaft fest, die über ihren DependencyPropertyKey-Bezeichner angegeben wird. (Von DependencyObject geerbt.) |
|
ShouldSerializeProperty | Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der bereitgestellten Abhängigkeitseigenschaft serialisieren sollen. (Von DependencyObject geerbt.) |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
|
VerifyAccess | Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.) |
| Name | Beschreibung | |
|---|---|---|
|
CustomVisualStateManagerProperty | Bezeichnet die CustomVisualStateManager-Abhängigkeitseigenschaft. |
|
VisualStateGroupsProperty | Bezeichnet die VisualStateGroups-Abhängigkeitseigenschaft. |
VisualStateManager ermöglicht es Ihnen, Zustände für ein Steuerelement anzugeben, die Darstellung eines Steuerelements, wenn es in einem bestimmten Zustand ist und wenn ein Steuerelement Zustände ändert. Ein Button könnte z. B. beim Klicken eine etwas andere Darstellung haben als wenn nicht geklickt wird. Zwei Zustände, die Button definiert; sie entsprechen einer gedrückten Taste ("Pressed") und einer nicht gedrückten Taste ("Normal"). Die Darstellung eines Steuerelements, wenn es in einem Zustand ist, wird von einem VisualState definiert. Ein VisualState enthält eine Auflistung von Storyboard-Objekten, die angeben, wie sich die Darstellung des Steuerelements ändert, wenn sich das Steuerelement in diesem Zustand befindet. Sie fügen visuelle Zustände zu einem Steuerelement hinzu, indem Sie die angefügte VisualStateManager.VisualStateGroups-Eigenschaft des Steuerelements festlegen. Jede VisualStateGroup enthält eine Auflistung sich gegenseitig ausschließender VisualState-Objekte. Das heißt, das Steuerelement befindet sich immer genau in einem Zustand in jeder VisualStateGroup.
Der VisualStateManager ermöglicht es Ihnen zudem anzugeben, wann ein Steuerelement in einen bestimmten Zustand eintritt. Die Methode, die Sie aufrufen sollten, um Zustände zu ändern, hängt vom Szenario ab. Wenn Sie ein Steuerelement erstellen, dass den VisualStateManager in seiner ControlTemplate verwendet, rufen Sie die GoToState-Methode auf. Weitere Informationen zum Erstellen von Steuerelementen, die den VisualStateManager verwenden, finden Sie unter Erstellen eines Steuerelements mit einer anpassbaren Darstellung. Wenn Sie den VisualStateManager außerhalb einer ControlTemplate verwenden (Z. B., wenn Sie einen VisualStateManager in einem UserControl oder einem einzelnen Element verwenden), rufen Sie die GoToElementState-Methode auf. In jedem Fall führt VisualStateManager die erforderliche Logik aus, um die dem betreffenden Zustand zugeordneten Storyboards zu starten und zu beenden. Angenommen, ein Steuerelement definiert die Zustände, State1 und State2, von denen jedem ein Storyboard zugeordnet ist. Wenn das Steuerelement in State1 ist, und Sie übergeben State2 an GoToState oder GoToElementState, startet der VisualStateManager das Storyboard in State2 und beendet das Storyboard in State1.
Steuerelemente, die in Windows Presentation Foundation (WPF) enthalten sind, ändern visuelle Zustände mithilfe des VisualStateManager. Wenn Sie eine ControlTemplate für ein Steuerelement erstellen, das in WPF enthalten ist, können Sie VisualState-Objekte zur ControlTemplate des Steuerelements hinzufügen, um die Darstellung des Steuerelements in einem bestimmten Zustand anzugeben. Informationen zum Suchen der Namen des visuellen Zustände für die Steuerelemente, die in WPF enthalten sind, finden Sie unter Control-Stile und -Vorlagen. Die Logik des Steuerelements behandelt den Übergang zwischen Zuständen, deshalb müssen Sie nur die VisualState-Objekte in der neuen ControlTemplate definieren. Weitere Informationen zum Erstellen von Steuerelementvorlagen für vorhandene Steuerelemente finden Sie unter Anpassen der Darstellung eines vorhandenen Steuerelements durch Erstellen einer ControlTemplate.
Wenn Sie eine eigene Logik für Übergänge zwischen Zuständen implementieren möchten, müssen Sie von VisualStateManager erben, die GoToStateCore-Methode überschreiben und die angefügte VisualStateManager.CustomVisualStateManager-Eigenschaft auf das Steuerelement festlegen, das die benutzerdefinierte Logik verwendet.
Im folgenden Beispiel wird ein Rectangle erstellt und ein VisualStateGroup namens CommonStates der angefügten VisualStateManager.VisualStatesGroups-Eigenschaft hinzugefügt. Dieses Beispiel definiert das MouseOver-Objekt und das NormalVisualState-Objekt in CommonStatesVisualStateGroup. Wenn der Benutzer den Mauszeiger über das Rectangle führt, wechselt seine Farbe für eine halbe Sekunde von rot nach grün. Wenn der Benutzer die Maus vom Rechteck entfernt, wechselt das Grid sofort zu rot zurück. Beachten Sie, dass der Normal-Zustand Storyboard nicht definiert. Ein Storyboard ist nicht erforderlich, da beim Übergang des Rectangle vom MouseOver-Zustand in den Normal-Zustand das Storyboard für MouseOver angehalten wird und die Color-Eigenschaft für die SolidColorBrush auf rot zurückwechselt.
<Rectangle Name="rect" Width="100" Height="100" MouseEnter="rect_MouseEvent" MouseLeave="rect_MouseEvent"> <VisualStateManager.VisualStateGroups> <VisualStateGroup Name="MouseStates"> <VisualState Name="MouseEnter"> <Storyboard> <ColorAnimation To="Green" Storyboard.TargetName="rectBrush" Storyboard.TargetProperty="Color"/> </Storyboard> </VisualState> <VisualState Name="MouseLeave" /> <VisualStateGroup.Transitions> <VisualTransition To="MouseLeave" GeneratedDuration="00:00:00"/> <VisualTransition To="MouseEnter" GeneratedDuration="00:00:00.5"> <VisualTransition.GeneratedEasingFunction> <ExponentialEase EasingMode="EaseOut" Exponent="10"/> </VisualTransition.GeneratedEasingFunction> </VisualTransition> </VisualStateGroup.Transitions> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Rectangle.Fill> <SolidColorBrush x:Name="rectBrush" Color="Red"/> </Rectangle.Fill> </Rectangle>
Im folgenden Beispiel wird der Ereignishandler veranschaulicht, der im vorherigen Beispiel definiert wurde, und die GoToElementState-Methode für den Übergang zwischen Zuständen aufgerufen. Wenn das Rechteck im vorherigen Beispiel Teil einer ControlTemplate war, muss im Beispiel die GoToState-Methode aufgerufen werden.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.