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 tworzy prosty ControlTemplate element dla elementu zawierającego Button jeden Gridelement . Zawiera VisualStateGroup również nazwę CommonStates, która definiuje MouseOver stany i Normal . Element VisualStateGroup ma VisualTransition również wartość , która określa, że zmiana z zielonego na czerwony trwa jedną połowę sekundy Grid , gdy użytkownik przenosi wskaźnik myszy na 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żdy VisualStateGroup zawiera kolekcję VisualState obiektów. Obiekt VisualState zawiera kolekcję Storyboard obiektów, które określają, jak zmienia się wygląd kontrolki, gdy kontrolka jest w określonym stanie. Na przykład element Button może mieć nieco inny wygląd, gdy jest naciśnięty niż wtedy, gdy nie jest naciśnięty. Dwa stany, które Button definiują, odpowiadają, gdy jest naciśnięty ("Pressed") i gdy nie jest ("Normal").
Dodasz VisualState 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, Pressedi Disabled. Drugi zawiera stany, Checked, UnCheckedi 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 przydatne, aby umożliwić innym ponowne zdefiniowanie zachowania wizualizacji elementu Control. Jeśli tworzysz kontrolkę niestandardową używającą ControlTemplateklasy , możesz określić stany, w których może znajdować się kontrolka TemplateVisualStateAttribute , dodając element w definicji klasy. Następnie każda osoba tworząca nową ControlTemplate kontrolkę może dodawać VisualState obiekty do szablonu. Stany z tym samym System.Windows.TemplateVisualStateAttribute.GroupName elementem należą do tego samego VisualStateGroup.
Aby uzyskać więcej informacji na temat używania VisualStateGroup obiektów w obiekcie , zobacz ControlTemplate Aby uzyskać więcej informacji na temat tworzenia kontrolek korzystających z programu VisualStateManager, zobacz Tworzenie kontrolki, która ma dostosowywalny wygląd.