VisualStateManager.VisualStateGroups Angefügte Eigenschaft
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.
Ruft eine Auflistung von VisualStateGroup-Objekten ab oder legt diese fest.
see GetVisualStateGroups
see GetVisualStateGroups
see GetVisualStateGroups
Beispiele
Im folgenden Beispiel wird ein einfaches ControlTemplate für ein Button erstellt, das eine Gridenthält. Es enthält auch einen VisualStateGroup namens CommonStates
, der die MouseOver
Zustände und Normal
definiert. Der VisualStateGroup hat auch eine VisualTransition , die angibt, dass es eine halbe Sekunde dauert, bis der Grid von grün in rot wechselt, 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
Jede VisualStateGroup enthält eine Auflistung von VisualState -Objekten. Ein VisualState enthält eine Auflistung von Storyboard -Objekten, die angeben, wie sich das Erscheinungsbild 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 Button werden, wenn es gedrückt wird ("Pressed"
) und wenn es nicht ("Normal"
) ist.
Sie fügen VisualState einem Steuerelement hinzu, indem Sie die VisualStateGroups angefügte Eigenschaft für das Steuerelement festlegen. Sie legen Zustände, die sich gegenseitig ausschließen, in derselben VisualStateGroup. Beispielsweise verfügt das CheckBox über zwei VisualStateGroup Objekte. Eins 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 in und MouseOver
Pressed
sein.
Obwohl Sie jedem Element Objekte hinzufügen VisualState können, sind sie eine besonders nützliche Möglichkeit, um es anderen zu ermöglichen, das visuelle Verhalten eines Controlneu zu definieren. Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, das ein ControlTemplateverwendet, können Sie angeben, in welchen Zustände sich das Steuerelement befinden kann, indem Sie seiner Klassendefinition einen TemplateVisualStateAttribute hinzufügen. Dann kann jeder, der ein neues ControlTemplate für Ihr Steuerelement erstellt, objekte zur Vorlage hinzufügen VisualState . Zustände mit demselben System.Windows.TemplateVisualStateAttribute.GroupName gehören in denselben 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 das VisualStateManagerverwenden, finden Sie unter Erstellen eines Steuerelements mit anpassbarer Darstellung.