VisualStateGroup-Klasse
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

VisualStateGroup Class

Enthält sich gegenseitig ausschließende VisualState- und VisualTransition Objekte, die zum Zustandswechsel verwendet werden.

Vererbung

Object
  DependencyObject
    VisualStateGroup

Syntax


public sealed class VisualStateGroup : DependencyObject


<VisualStateManager.VisualStateGroups>
   <VisualStateGroup x:Name="groupname" ...>
     oneOrMoreVisualStates
   </VisualStateGroup>
   <!--- other peer VisualStateGroup's here ... -->
</VisualStateManager.VisualStateGroups>

XAML Values

oneOrMoreVisualStates

Ein oder mehrere Objektelemente vom Typ VisualState.

groupname

Ein aussagekräftiger Name, der die VisualState-Verhalten beschreibt, die von der VisualStateGroup gruppiert werden. Siehe Hinweise.

Attribute

[ContentProperty("Name=States")]
[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]
[WebHostHidden()]

Member

VisualStateGroupKlasse hat diese Membertypen:

Konstruktoren

VisualStateGroupKlasse hat diese Konstruktoren.

KonstruktorBeschreibung
VisualStateGroup Initializes a new instance of the VisualStateGroup class.

 

Ereignisse

VisualStateGroupKlasse hat diese Ereignisse.

EreignisBeschreibung
CurrentStateChanged Occurs after a control changes into a different state.
CurrentStateChanging Occurs when a control begins changing into a different state.

 

Methoden

The VisualStateGroup Klasse hat diese Methoden. Es erbt auch Methoden von Object Klasse.

MethodeBeschreibung
ClearValue Clears the local value of a dependency property. (Geerbt von DependencyObject)
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active. (Geerbt von DependencyObject)
GetValue Returns the current effective value of a dependency property from a DependencyObject. (Geerbt von DependencyObject)
ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Geerbt von DependencyObject)
SetValue Sets the local value of a dependency property on a DependencyObject. (Geerbt von DependencyObject)

 

Eigenschaften

Der VisualStateGroupKlasse hat diese Eigenschaften.

EigenschaftZugriffstypBeschreibung

CurrentState

SchreibgeschütztGets the most recently set VisualState from a successful call to the GoToState method.

Dispatcher

SchreibgeschütztGets the CoreDispatcher that this object is associated with. (Geerbt von DependencyObject)

Name

SchreibgeschütztGets the name of the VisualStateGroup.

States

SchreibgeschütztGets the collection of mutually exclusive VisualState objects.

Transitions

SchreibgeschütztGets the collection of VisualTransition objects.

 

Hinweise

Für jede VisualStateGroup-Klasse, die in XAML als Teil einer Steuerelementvorlage deklariert ist, muss immer ein x:Name-Attribut festgelegt werden. Jede Namenszeichenfolge, die im Satz von VisualStateGroups in einer Steuerelementvorlage verwendet wird, muss in dieser Vorlage eindeutig sein. Es ist üblich, dieselben Gruppennamen für unterschiedliche Steuerelemente zu verwenden. Beispielsweise verfügen fast alle Steuerungsvorlagen über eine VisualStateGroup mit dem Attribut x:Name von "CommonStates".

Die visuellen Zustände innerhalb jeder VisualStateGroup sollten sich in der Gruppe gegenseitig ausschließen. Das heißt, das Steuerelement sollte jederzeit genau einen der visuellen Zustände aus einer definierten VisualStateGroup-Gruppe verwenden. Immer wenn ein Steuerelement in zwei Zuständen gleichzeitig sein soll, stellen Sie sicher, dass sich die beiden Zustände in unterschiedlichen Gruppen befinden. Es ist beispielsweise möglich, dass ein Dropdown-Steuerelement gleichzeitig fokussiert wird und das eigene Dropdown geöffnet hat. In einem korrekten Entwurf des visuellen Zustands hätten Sie eine separate VisualStateGroup für jeden Status, sodass beide gleichzeitig aktiv sein können. Diese Gruppen verfügen über Namen wie "FocusStates" und "DropDownStates".

Wenn Sie eine VisualStateGroup definieren, die ein temporäres Storyboard-Verhalten in einem ihrer VisualState-Elemente aktiviert, stellen Sie sicher, dass diese Gruppe auch einen zweiten VisualState enthält, der aufgerufen werden kann, um den vorherigen Zustand abzubrechen. Dies kann einfach die Deklarierung des zweiten VisualState ohne Storyboard sein, nur ein x:Name.

Der x:Name -Wert, den Sie für eine VisualStateGroup festlegen, wird nicht für einen Aufruf von VisualStateManager.GoToState verwendet. Stattdessen handelt es sich um den x:Name eines VisualState, der für VisualStateManager.GoToState verwendet wird. Jeder, der VisualStateManager.GoToState verwendet, sollte alle verfügbaren Gruppen und Zustände berücksichtigen, damit jeder Aufruf innerhalb einer Gruppe ordnungsgemäß von alten Zuständen in neue Zustände übergeht.

Neben einem Satz von VisualState-Elementen kann eine VisualStateGroup auch einen Satz von VisualTransition-Elementen definieren, wobei jede VisualTransition für mindestens eines der benannten VisualState-Elemente gilt, die in die Gruppe definiert sind. In XAML kann der Satz von VisualState-Elementen als unmittelbares Objektelement der untergeordneten Elemente der VisualStateGroup deklariert werden. Dies ist möglich, da die States-Eigenschaft, die die Auflistung visueller Zustände ist, die XAML-Inhaltseigenschaft für VisualStateGroup ist. Hingegen müssen Sie für die Festlegung der Auflistung visueller Übergänge die Auflistung innerhalb eines VisualStateGroup.Transitions-Eigenschaftenelements in XAML deklarieren. Weitere Informationen zum XAML-Inhaltseigenschaften finden Sie in der Anleitung zur grundlegenden XAML-Syntax.

VisualStateGroup-APIs, die eine benutzerdefinierte VisualStateManager-Implementierung unterstützen

Viele der APIs von VisualStateGroup sind nur vorhanden, um die benutzerdefinierte VisualStateManager-Implementierung zu unterstützen. Dazu gehören: Name, CurrentState, CurrentStateChanging, CurrentStateChanged. Die häufigsten Verwendungen von visuellen Zuständen für Steuerelementvorlagen erfordern diese APIs nicht. Insbesondere ist es nicht typisch, die Ereignisse zu behandeln. Die meisten logischen Vorgänge für ein Steuerelement umfassen seine eigenen Eigenschaften und Ereignisse. Für die meisten App- und Steuerelementdefinitionsszenarien sollten Änderungen des visuellen Zustands, die beim Steuerelement auftreten, nur ein Endergebnis der Logik sein, die das Steuerelement für seine Vorlage anwendet. Sie sollten kein Auslöser für eine andere Logik sein.

Beispiele

In diesem Beispiel wird eine einfache ControlTemplate für eine Button erstellt, die ein Grid enthält. Außerdem ist eine VisualStateGroup mit der Bezeichnung "CommonStates" enthalten, welche die Zustände "PointerOver" and "Normal" definiert. Die VisualStateGroup verfügt außerdem über eine VisualTransition, die angibt, dass der Wechsel von Grün zu Rot im Grid eine halbe Sekunde dauert, sobald der Benutzer den Mauszeiger über den Button führt.


<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 [Nur Windows Store-Apps]

Mindestens unterstützter Server

Windows Server 2012 [Nur Windows Store-Apps]

Namespace

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadaten

Windows.winmd

Siehe auch

DependencyObject
VisualStateManager
VisualState
Schnellstart: Steuerelementvorlagen
Storyboard-Animationen
Storyboard-Animationen für visuelle Zustände
Formatieren von Steuerelement und App im XAML-Beispiel

 

 

Anzeigen:
© 2017 Microsoft