Angefügte VisualStateManager.VisualStateGroups-Eigenschaft

VisualStateManager.VisualStateGroups Attached Property

Ruft die Auflistung von VisualStateGroup-Elementen ab, die vom Stammelement einer Vorlagendefinition definiert wurden. Ein Steuerelement definiert dies in der Regel als Teil der Vorlage.


<templateRoot>
  <VisualStateManager.VisualStateGroups>
    oneOrMoreVisualStateGroups
  </VisualStateManager.VisualStateGroups>
</templateRoot>

XAML Values

templateRoot

Das Stamm-UIElement gemäß der Definition innerhalb einer Steuerelementvorlage (ein ControlTemplate-Objektelement).

oneOrMoreVisualStateGroups

Ein oder mehrere VisualStateGroup-Elemente. Bei jedem dieser VisualStateGroup-Objekte wird erwartet, dass es über ein eindeutiges x:Name innerhalb seines Definitionsbereichs verfügt. Jedes VisualStateGroup-Objekt enthält i. d. R. mindestens eine VisualState-Definition für einen animierten Übergang.

Hinweise

VisualStateManager unterstützt zwei wichtige Funktionen zum Steuern von Autoren und für App-Entwickler, die eine benutzerdefinierte Vorlage auf ein Steuerelement anwenden:

  • Steuerelementautoren oder App-Entwickler fügen VisualStateGroup-Objektelemente zu einem Stammelement einer Steuerelementvorlagendefinition in XAML mithilfe der angefügten VisualStateManager.VisualStateGroups-Eigenschaft hinzu. Innerhalb eines VisualStateGroup-Elements stellt VisualState einen einzelnen visuellen Zustand eines Steuerelements dar. Jede VisualState-Klasse hat einen Namen, der typisch für einen UI-Zustand ist, der vom Benutzer oder durch die Steuerelementlogik geändert werden kann. Ein VisualState besteht hauptsächlich aus einem Storyboard. Dieses Storyboard zielt auf einzelne Abhängigkeitseigenschaftswerte ab, die angewendet werden sollen, wenn sich das Steuerelement in diesem visuellen Zustand befindet.
  • Steuerelementautoren oder App-Entwickler wechseln zwischen diesen Zuständen durch Aufrufen der statischen GoToState-Methode von VisualStateManager. Dies passiert immer dann, wenn die Steuerelementlogik Ereignisse behandelt, die auf eine Zustandsänderung hinweisen oder wenn eine Zustandsänderung direkt von der Steuerelementlogik initiiert wird. Häufig wird dazu eher Steuerdefinitionscode anstatt App-Code verwendet, sodass alle möglichen visuellen Zustände und Übergänge und ihre Triggerzustände standardmäßig für App-Code vorhanden sind.

Die meisten Entwickler verwenden nur zwei der VisualStateManager-APIs: VisualStateManager.VisualStateGroups und GoToState, wie oben beschrieben.

VisualStateManager.VisualStateGroups ist eine angefügte Eigenschaft, die eine XAML-Verwendung unterstützt. Wenn Sie diese Eigenschaft in Code abrufen, verwenden Sie GetVisualStateGroups. Dies gibt ein Auflistungsobjekt zurück, dem Sie Elemente hinzufügen können, wobei das XAML-Verarbeitungsverhalten aller untergeordneten Elemente einer Verwendung des Eigenschaftenelements <VisualStateManager.VisualStateGroups> parallelisiert wird. Da es keinen Bezeichner für die öffentliche Abhängigkeitseigenschaft für diese angefügte Eigenschaft gibt, können Sie GetValue plus dem Bezeichner nicht verwenden, um diese angefügte Eigenschaft über die APIs des Eigenschaftensystems abzurufen.

Ein VisualStateManager.VisualStateGroups-Wert wird von keinem greifbaren VisualStateManager-Objekt interpretiert, das Teil der gleichen visuellen Struktur ist. Die Eigenschaft stellt vielmehr eine generalisierte Containereigenschaft bereit, die für jedes mögliche UIElement verwendet werden kann, das als Wurzelelement einer Vorlagendefinition dient.

Beispiele

Dieses Beispiel zeigt, wie die VisualStateManager.VisualStateGroups XAML-angefügte Eigenschaft verwendet wird. Beachten Sie, dass sonst kein "VisualStateManager"-Tag definiert ist. Im Prinzip enthält VisualStateManager.VisualStateGroups die visuellen Zustände für ein Steuerelement, als unmittelbar untergeordneten Tag des Vorlagenstamms in einer Steuerelementvorlage.

Der bestimmte Satz visueller Zustände enthält ein VisualStateGroup, das "CommonStates" genannt wird, und das, das "PointerOver"-Objekt und das "Normal" VisualState-Objekt definiert. Wenn der Benutzer den Zeiger über den Button führt, wechselt das Grid für eine halbe Sekunde von grün nach rot. Wenn der Benutzer den Zeiger von der Schaltfläche entfernt, wird das Grid sofort wieder grün.


<ControlTemplate TargetType="Button">
  <Grid >
    <VisualStateManager.VisualStateGroups>
      <VisualStateGroup x:Name="CommonStates">

        <VisualStateGroup.Transitions>

          <!--Take one half second to transition to the PointerOver state.-->
          <VisualTransition To="PointerOver" 
                              GeneratedDuration="0:0:0.5"/>
        </VisualStateGroup.Transitions>
        
        <VisualState x:Name="Normal" />

        <!--Change the SolidColorBrush, ButtonBrush, to red when the
            Pointer is over the button.-->
        <VisualState x:Name="PointerOver">
          <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>


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.UI.Xaml

Metadaten

Windows.winmd

Siehe auch

VisualStateManager
VisualStateGroup
VisualState
Storyboard
Schnellstart: Steuerelementvorlagen
Übersicht über angefügte Eigenschaften

 

 

Anzeigen:
© 2017 Microsoft