VisualStateGroup Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Enthält sich gegenseitig ausschließende VisualState-Objekte und VisualTransition-Objekte, die zum Wechseln zwischen Zuständen verwendet werden.
public ref class VisualStateGroup : System::Windows::DependencyObject
[System.Windows.Markup.ContentProperty("States")]
[System.Windows.Markup.RuntimeNameProperty("Name")]
public class VisualStateGroup : System.Windows.DependencyObject
[<System.Windows.Markup.ContentProperty("States")>]
[<System.Windows.Markup.RuntimeNameProperty("Name")>]
type VisualStateGroup = class
inherit DependencyObject
Public Class VisualStateGroup
Inherits DependencyObject
- Vererbung
- Attribute
Beispiele
Im folgenden Beispiel wird ein einfaches ControlTemplate für ein Button erstellt, das eine Gridenthält. Sie enthält auch einen VisualStateGroup namens CommonStates
, der den MouseOver
Zustand und Normal
definiert. verfügt VisualStateGroup auch über eine VisualTransition , die angibt, dass es eine halbe Sekunde dauert, bis sich von Grid grün in rot ändert, wenn der Benutzer den Mauszeiger über den Buttonbewegt.
<ControlTemplate TargetType="Button">
<Grid >
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<!--Take one half second to trasition to the MouseOver state.-->
<VisualTransition To="MouseOver"
GeneratedDuration="0:0:0.5"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal" />
<!--Change the SolidColorBrush, ButtonBrush, to red when the
mouse is over the button.-->
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="ButtonBrush"
Storyboard.TargetProperty="Color" To="Red" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.Background>
<SolidColorBrush x:Name="ButtonBrush" Color="Green"/>
</Grid.Background>
</Grid>
</ControlTemplate>
Hinweise
Jedes VisualStateGroup enthält eine Auflistung von VisualState -Objekten. Ein VisualState enthält eine Auflistung von Storyboard -Objekten, die angeben, wie sich die Darstellung des Steuerelements ändert, wenn sich das Steuerelement in einem bestimmten Zustand befindet. Beispielsweise kann ein Button etwas anderes Aussehen haben, wenn es gedrückt wird, als wenn es nicht gedrückt wird. Zwei Zustände, die definiert werden Button , entsprechen, wenn es gedrückt wird ("Pressed"
) und wenn es nicht ("Normal"
) ist.
Sie fügen einem Steuerelement hinzu VisualState , indem Sie die VisualStateManager.VisualStateGroups
angefügte Eigenschaft für das Steuerelement festlegen. Zustände, die sich gegenseitig ausschließen, werden in derselben VisualStateGroupplatziert. Beispielsweise verfügt das über CheckBox zwei VisualStateGroup -Objekte. Eine enthält die Zustände , Normal
MouseOver
, Pressed
und Disabled
. Die andere enthält die Zustände Checked
, UnChecked
und Indeterminate
. Der CheckBox kann sich in Zuständen MouseOver
und UnChecked
gleichzeitig befinden, aber es kann nicht gleichzeitig im MouseOver
Zustand und Pressed
sein.
Obwohl Sie jedem Element Objekte hinzufügen VisualState können, sind sie eine besonders nützliche Möglichkeit, um anderen das visuelle Verhalten eines Controlneu zu definieren. Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, das ein ControlTemplateverwendet, können Sie angeben, in welchen Zuständen das Steuerelement sich befinden kann, indem Sie seiner Klassendefinition eine TemplateVisualStateAttribute hinzufügen. Dann kann jeder, der ein neues ControlTemplate für Ihr Steuerelement erstellt, der Vorlage Objekte hinzufügen VisualState . Ermöglicht TemplateVisualStateAttribute Designertools wie Visual Studio und Blend für Visual Studio, die Zustände des Steuerelements verfügbar zu machen. Zustände mit demselben TemplateVisualStateAttribute.GroupName gehören in dasselbe VisualStateGroup.
Weitere Informationen zur Verwendung VisualStateGroup von -Objekten in einem ControlTemplatefinden Sie unter Anpassen der Darstellung eines vorhandenen Steuerelements durch Erstellen einer ControlTemplate. Weitere Informationen zum Erstellen von Steuerelementen, die verwenden VisualStateManager, finden Sie unter Erstellen eines Steuerelements mit anpassbarer Darstellung.
Die Transitions -Eigenschaft enthält VisualTransition -Objekte, die angewendet werden, wenn das Steuerelement zwischen Zuständen wechselt, die in definiert VisualStateGroupsind.
Konstruktoren
VisualStateGroup() |
Initialisiert eine neue Instanz der VisualStateGroup-Klasse. |
Eigenschaften
CurrentState |
Ruft den VisualState ab, der derzeit auf das Steuerelement angewendet ist. |
DependencyObjectType |
Ruft den ab, der DependencyObjectType den CLR-Typ dieser Instanz umschließt. (Geerbt von DependencyObject) |
Dispatcher |
Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist. (Geerbt von DispatcherObject) |
IsSealed |
Ruft einen Wert ab, der angibt, ob diese Instanz derzeit versiegelt (schreibgeschützt) ist. (Geerbt von DependencyObject) |
Name |
Ruft den Namen der VisualStateGroup ab oder legt diesen fest. |
States |
Ruft die Auflistung sich gegenseitig ausschließender VisualState-Objekte ab. |
Transitions |
Ruft die Auflistung von VisualTransition-Objekten ab. |
Methoden
CheckAccess() |
Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Geerbt von DispatcherObject) |
ClearValue(DependencyProperty) |
Löscht den lokalen Wert einer Eigenschaft. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyProperty-Bezeichner angegeben. (Geerbt von DependencyObject) |
ClearValue(DependencyPropertyKey) |
Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyPropertyKey angegeben. (Geerbt von DependencyObject) |
CoerceValue(DependencyProperty) |
Erzwingt den Wert der angegebenen Abhängigkeitseigenschaft. Dies erfolgt durch den Aufruf einer beliebigen CoerceValueCallback-Funktion, die in den Metadaten für die Abhängigkeitseigenschaft angegeben ist, während sie beim aufrufenden DependencyObject beendet wird. (Geerbt von DependencyObject) |
Equals(Object) |
Bestimmt, ob ein angegebenes DependencyObject dem aktuellen DependencyObject entspricht. (Geerbt von DependencyObject) |
GetHashCode() |
Ruft einen Hashcode für diese DependencyObject ab. (Geerbt von DependencyObject) |
GetLocalValueEnumerator() |
Erstellt einen spezialisierten Enumerator, mit dem bestimmt wird, welche Abhängigkeitseigenschaften dieses DependencyObject über lokal festgelegte Werte verfügen. (Geerbt von DependencyObject) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
GetValue(DependencyProperty) |
Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft für diese Instanz eines DependencyObject zurück. (Geerbt von DependencyObject) |
InvalidateProperty(DependencyProperty) |
Wertet den effektiven Wert für die angegebene Abhängigkeitseigenschaft erneut aus. (Geerbt von DependencyObject) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Wird immer dann aufgerufen, wenn der effektive Wert einer Abhängigkeitseigenschaft für dieses DependencyObject aktualisiert wurde. Welche spezifische Abhängigkeitseigenschaft geändert wird, wird in den Ereignisdaten gemeldet. (Geerbt von DependencyObject) |
ReadLocalValue(DependencyProperty) |
Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn dieser vorhanden ist. (Geerbt von DependencyObject) |
SetCurrentValue(DependencyProperty, Object) |
Legt den Wert einer Abhängigkeitseigenschaft fest, ohne deren Wertquelle zu ändern. (Geerbt von DependencyObject) |
SetValue(DependencyProperty, Object) |
Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die durch ihren Bezeichner angegeben ist. (Geerbt von DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
Legt den lokalen Wert einer schreibgeschützten Abhängigkeitseigenschaft fest, die durch den DependencyPropertyKey-Bezeichner der Abhängigkeitseigenschaft angegeben ist. (Geerbt von DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der bereitgestellten Abhängigkeitseigenschaft serialisieren sollen. (Geerbt von DependencyObject) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
VerifyAccess() |
Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Geerbt von DispatcherObject) |
Ereignisse
CurrentStateChanged |
Tritt nach dem Übergang eines Steuerelements in einen anderen Zustand ein. |
CurrentStateChanging |
Tritt ein, wenn der Übergang eines Steuerelements in einen anderen Zustand beginnt. |