VisualStateManager.VisualStateGroups Angefügte Eigenschaft

Definition

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, Pressedund Disabled. Die andere enthält die Zustände , Checked, UnCheckedund Indeterminate. Der CheckBox kann sich in Zuständen MouseOver und UnChecked gleichzeitig befinden, aber es kann nicht gleichzeitig in und MouseOverPressed 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.

Gilt für: