Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

VisualStateManager.VisualStateGroups (angefügte Eigenschaft)

Ruft eine Auflistung der VisualStateGroup-Objekte ab oder legt diese fest.

Namespace:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)
See GetVisualStateGroups

Eigenschaftswert

Typ: System.Collections.IList
Eine Auflistung von VisualStateGroup-Objekten.

Jede VisualStateGroup enthält eine Auflistung von VisualState-Objekten. Ein 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. Ein Button könnte z. B. beim Klicken eine etwas andere Darstellung haben als wenn nicht geklickt wird. Zwei Zustände, die Button definiert; sie entsprechen einer gedrückten Taste ("Pressed") und einer nicht gedrückten Taste ("Normal").

Sie fügen VisualState zu einem Steuerelement hinzu, indem Sie die angefügte VisualStateGroups-Eigenschaft des Steuerelements festlegen. Sie ordnen Zustände, die sich gegenseitig ausschließen, in derselben VisualStateGroup an. Beispielsweise verfügt die CheckBox über zwei VisualStateGroup-Objekte. Ein Objekt enthält die Zustände Normal, MouseOver, Pressed und Disabled. Das andere Objekt enthält die Zustände Checked, UnChecked und Indeterminate. Die CheckBox kann sich gleichzeitig im Zustand MouseOver und UnChecked befinden, es kann sich jedoch nicht gleichzeitig im Zustand MouseOver und Pressed befinden.

Obwohl Sie jedem Element VisualState-Objekte hinzufügen können, stellen sie eine besonders nützliche Möglichkeit dar, es anderen zu ermöglichen, das visuelle Verhalten eines Control neu zu definieren. Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, das einen ControlTemplate verwendet, können Sie die Zustände angeben, die dieses Steuerelement annehmen kann, indem Sie das TemplateVisualStateAttribute in dessen Klassendefinition hinzufügen. Dann kann jeder, der eine neue ControlTemplate für das Steuerelement erstellt, der Vorlage VisualState-Objekte hinzufügen. Zustände mit dem gleichen TemplateVisualStateAttribute.GroupName gehören zur gleichen VisualStateGroup.

Weitere Informationen über die Verwendung von VisualStateGroup-Objekten in einer ControlTemplate finden Sie unter Anpassen der Darstellung eines vorhandenen Steuerelements durch Erstellen einer ControlTemplate. Weitere Informationen zum Erstellen von Steuerelementen, die den VisualStateManager verwenden, finden Sie unter Erstellen eines Steuerelements mit einer anpassbaren Darstellung.

Im folgenden Beispiel wird eine einfache ControlTemplate für einen Button mit einem Grid erstellt. Außerdem ist die VisualStateGroupCommonStates enthalten, die den MouseOver-Zustand und den Normal-Zustand definiert. Die VisualStateGroup verfügt außerdem über eine VisualTransition, die angibt, dass das Wechseln des Grid von grün zu rot eine halbe Sekunde dauert, wenn der Benutzer die Maus über den Button hält.


<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>


.NET Framework

Unterstützt in: 4

.NET Framework Client Profile

Unterstützt in: 4

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ