VisualStateManager.VisualStateGroups Angefügte Eigenschaft

Definition

Dient zum Abrufen oder Festlegen einer Auflistung von VisualStateGroup Objekten.

see GetVisualStateGroups
see GetVisualStateGroups
see GetVisualStateGroups

Beispiele

Im folgenden Beispiel wird ein einfaches ControlTemplate Element für ein Objekt Button erstellt, das eine Gridenthält. Sie enthält auch einen VisualStateGroup benannten CommonStatesNamen, der die MouseOver Zustände definiert.Normal Außerdem VisualStateGroup gibt es einen VisualTransition Wert, der angibt, dass es eine Halbe Sekunde dauert, bis der Grid Wechsel von Grün in Rot erfolgt, wenn der Benutzer den Mauszeiger über die .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>

Hinweise

Jede VisualStateGroup enthält eine Auflistung von VisualState Objekten. A VisualState enthält eine Auflistung von Storyboard Objekten, die angeben, wie sich die Darstellung des Steuerelements ändert, wenn sich das Steuerelement in einem bestimmten Zustand befindet. Beispielsweise kann ein Element Button etwas anders aussehen, wenn es gedrückt wird, als wenn es nicht gedrückt wird. Zwei Zustände, die definierten Button entsprechen, wenn sie gedrückt ("Pressed") und wenn sie 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 fest, die sich gegenseitig ausschließen VisualStateGroup. Dies umfasst z. B CheckBox . zwei VisualStateGroup Objekte. Eine enthält die Zustände, Normal, , MouseOver, Pressedund Disabled. Die andere enthält die Zustände, Checked, , UnCheckedund Indeterminate. Dies CheckBox kann sich in Staaten MouseOver und UnChecked gleichzeitig befinden, aber nicht gleichzeitig in den MouseOver Zuständen sein Pressed .

Obwohl Sie jedem Element Objekte hinzufügen VisualState können, sind sie eine besonders nützliche Methode, um anderen das visuelle Verhalten eines Elements Controlneu zu definieren. Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, das ein ControlTemplateSteuerelement verwendet, können Sie angeben, in welchen Zuständen dieses Steuerelements enthalten sein kann, indem Sie die TemplateVisualStateAttribute Klassendefinition hinzufügen. Anschließend kann jeder, der ein neues ControlTemplate Steuerelement erstellt, der Vorlage Objekte hinzufügen VisualState . Staaten mit demselben Gehören in demselben System.Windows.TemplateVisualStateAttribute.GroupNameVisualStateGroup.

Weitere Informationen zur Verwendung von VisualStateGroup Objekten in einem ControlTemplateSteuerelement finden Sie unter How to create a template for a control. Weitere Informationen zum Erstellen von Steuerelementen, die das VisualStateManagerSteuerelement verwenden, finden Sie unter Erstellen eines Steuerelements mit anpassbarer Darstellung.

Gilt für: