VisualStateManager.VisualStateGroups Właściwość dołączona

Definicja

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.

Dotyczy