VisualStateManager.VisualStateGroups Właściwość dołączona
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia kolekcję VisualStateGroup obiektów.
see GetVisualStateGroups
see GetVisualStateGroups
see GetVisualStateGroups
Przykłady
Poniższy przykład umożliwia utworzenie prostego ControlTemplate elementu zawierającego Button element Grid. Zawiera VisualStateGroup również nazwę CommonStates
, która definiuje MouseOver
stany i Normal
. Element VisualStateGroup ma również wartość określającą VisualTransition , że zmiana z kolorem zielonym na czerwony trwa jedną połowę sekundy Grid , gdy użytkownik przesuwa wskaźnik myszy nad elementem Button.
<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>
Uwagi
Każda z nich VisualStateGroup zawiera kolekcję VisualState obiektów. Element VisualState zawiera kolekcję Storyboard obiektów, które określają sposób zmiany wyglądu kontrolki, gdy kontrolka jest w określonym stanie. Na przykład element Button może mieć nieco inny wygląd, gdy jest on naciskany niż wtedy, gdy nie jest naciskany. Dwa stany, które Button definiują, odpowiadają, gdy jest on naciśnięty ("Pressed"
) i gdy nie jest ("Normal"
).
VisualState Dodasz do kontrolki, ustawiając dołączoną VisualStateGroups właściwość w kontrolce. Umieszczasz stany, które wzajemnie się wykluczają w tym samym VisualStateGroupobiekcie . Na przykład obiekt CheckBox ma dwa VisualStateGroup obiekty. Jeden zawiera stany, Normal
, MouseOver
, Pressed
i Disabled
. Druga zawiera stany, Checked
, UnChecked
i Indeterminate
. Może CheckBox być w stanach MouseOver
i UnChecked
jednocześnie, ale nie może być w MouseOver
stanach i Pressed
w tym samym czasie.
Chociaż można dodawać VisualState obiekty do dowolnego elementu, są one szczególnie przydatnym sposobem na ponowne zdefiniowanie zachowania wizualnego elementu Control. Jeśli tworzysz niestandardową kontrolkę używającą klasy ControlTemplate, możesz określić stany, w których może znajdować się kontrolka, dodając definicję TemplateVisualStateAttribute klasy. Następnie każda osoba tworząca nową ControlTemplate kontrolkę może dodawać VisualState obiekty do szablonu. Stany o tej samej System.Windows.TemplateVisualStateAttribute.GroupName własności należą do tego samego VisualStateGroup.
Aby uzyskać więcej informacji na temat używania VisualStateGroup obiektów w elemecie ControlTemplate, zobacz Dostosowywanie wyglądu istniejącej kontrolki przez tworzenie kontrolkiTemplate. Aby uzyskać więcej informacji na temat tworzenia kontrolek korzystających z elementu VisualStateManager, zobacz Tworzenie kontrolki, która ma dostosowywalny wygląd.