VisualStateManager.VisualStateGroups Angefügte Eigenschaft

Definition

Ruft eine Auflistung von VisualStateGroup-Objekten ab oder legt diese fest.Gets or sets a collection of VisualStateGroup objects.

see GetVisualStateGroups
see GetVisualStateGroups
see GetVisualStateGroups

Beispiele

Im folgenden Beispiel wird ein einfaches ControlTemplate für einen Button erstellt, der Grideinen enthält.The following example creates a simple ControlTemplate for a Button that contains one Grid. Sie enthält auch einen VisualStateGroup mit CommonStatesdem Namen, der MouseOver die Normal Zustände und definiert.It also contains a VisualStateGroup named CommonStates, which defines the MouseOver and Normal states. Der VisualStateGroup verfügt auch über VisualTransition einen, der angibt, dass es Grid eine halbe Sekunde dauert, bis die von Grün in rot wechselt, wenn der Benutzer den Maus ButtonZeiger über den bewegt.The VisualStateGroup also has a VisualTransition that specifies that it takes one half second for the Grid to change from green to red when the user moves the mouse pointer over the 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.Each VisualStateGroup contains a collection of VisualState objects. Eine VisualState enthält eine Auflistung von Storyboard -Objekten, die angeben, wie sich das Erscheinungsbild des Steuer Elements ändert, wenn sich das Steuerelement in einem bestimmten Zustand befindet.A VisualState contains a collection of Storyboard objects that specify how the control's appearance changes when the control is in a certain state. Beispielsweise kann eine Button etwas anderes Aussehen, wenn Sie gedrückt wird, als wenn Sie nicht gedrückt wird.For example, a Button might have a slightly different appearance when it is pressed than when it is not pressed. Zwei Zustände, denen Button das definiert, wenn es gedrückt wird ("Pressed"), und wenn es nicht ist"Normal"().Two states that the Button defines correspond to when it is pressed ("Pressed") and when it is not ("Normal").

Sie fügen VisualState einem Steuerelement hinzu, indem VisualStateGroups Sie die angefügte-Eigenschaft für das Steuerelement festlegen.You add VisualState to a control by setting the VisualStateGroups attached property on the control. Sie legen Zustände fest, die sich gegenseitig ausschließen VisualStateGroup.You put states that are mutually exclusive to each other in the same VisualStateGroup. Beispielsweise CheckBox verfügt über zwei VisualStateGroup -Objekte.For example, the CheckBox has two VisualStateGroup objects. Eine enthält die Zustände, Normal MouseOver Pressed,, und Disabled.One contains the states, Normal, MouseOver, Pressed, and Disabled. Der andere enthält die Zustände, Checked UnChecked, und Indeterminate.The other contains the states, Checked, UnChecked, and Indeterminate. UnChecked MouseOver Pressed Kann sich in einem Status undgleichzeitigbefinden,kannabernichtgleichzeitigindenZuständenundsein.MouseOver CheckBoxThe CheckBox can be in states MouseOver and UnChecked at the same time, but it cannot be in the MouseOver and Pressed states at the same time.

Obwohl Sie-Objekte VisualState einem beliebigen-Element hinzufügen können, ist dies eine besonders nützliche Methode, um anderen die Möglichkeit zu bieten Control, das visuelle Verhalten von zu definieren.Although you can add VisualState objects to any element, they are a particularly useful way to enable others to redefine the visual behavior of a Control. Wenn Sie ein benutzerdefiniertes Steuerelement erstellen ControlTemplate, das ein-Element verwendet, können Sie angeben, in TemplateVisualStateAttribute welchen Zuständen sich das Steuerelement befinden kann.If you create a custom control that uses a ControlTemplate, you can specify which states that control can be in by adding a TemplateVisualStateAttribute on its class definition. Dann kann jeder, der einen ControlTemplate neuen für das Steuerelement VisualState erstellt, der Vorlage Objekte hinzufügen.Then anyone who creates a new ControlTemplate for your control can add VisualState objects to the template. Zustände mit dem gleichen System.Windows.TemplateVisualStateAttribute.GroupName gehören zu demselben. VisualStateGroupStates with the same System.Windows.TemplateVisualStateAttribute.GroupName belong in the same VisualStateGroup.

Weitere Informationen zum verwenden VisualStateGroup von-Objekten in einem ControlTemplatefinden Sie unter Anpassen der Darstellung eines vorhandenen Steuer Elements durch Erstellen einer ControlTemplate.For more information about how to use VisualStateGroup objects in a ControlTemplate, see Customizing the Appearance of an Existing Control by Creating a ControlTemplate. Weitere Informationen zum Erstellen von Steuerelementen, die verwenden VisualStateManager, finden Sie unter Erstellen eines Steuer Elements, das über eine anpassbare Darstellung verfügt.For more information about how to create controls that use the VisualStateManager, see Creating a Control That Has a Customizable Appearance.

Gilt für: