Freigeben über


VisualStateGroup Klasse

Definition

Enthält sich gegenseitig ausschließende VisualState-Objekte und VisualTransition-Objekte, die zum Wechseln zwischen Zuständen verwendet werden.

public ref class VisualStateGroup : System::Windows::DependencyObject
[System.Windows.Markup.ContentProperty("States")]
[System.Windows.Markup.RuntimeNameProperty("Name")]
public class VisualStateGroup : System.Windows.DependencyObject
[<System.Windows.Markup.ContentProperty("States")>]
[<System.Windows.Markup.RuntimeNameProperty("Name")>]
type VisualStateGroup = class
    inherit DependencyObject
Public Class VisualStateGroup
Inherits DependencyObject
Vererbung
Attribute

Beispiele

Im folgenden Beispiel wird ein einfaches ControlTemplate für ein Button erstellt, das eine Gridenthält. Sie enthält auch einen VisualStateGroup namens CommonStates, der den MouseOver Zustand und Normal definiert. verfügt VisualStateGroup auch über eine VisualTransition , die angibt, dass es eine halbe Sekunde dauert, bis sich von Grid grün in rot ändert, wenn der Benutzer den Mauszeiger über den Buttonbewegt.

<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

Jedes 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. Beispielsweise kann ein Button etwas anderes Aussehen haben, wenn es gedrückt wird, als wenn es nicht gedrückt wird. Zwei Zustände, die definiert werden Button , entsprechen, wenn es gedrückt wird ("Pressed") und wenn es nicht ("Normal") ist.

Sie fügen einem Steuerelement hinzu VisualState , indem Sie die VisualStateManager.VisualStateGroups angefügte Eigenschaft für das Steuerelement festlegen. Zustände, die sich gegenseitig ausschließen, werden in derselben VisualStateGroupplatziert. Beispielsweise verfügt das über CheckBox zwei VisualStateGroup -Objekte. Eine enthält die Zustände , NormalMouseOver, Pressedund Disabled. Die andere enthält die Zustände Checked, UnCheckedund Indeterminate. Der CheckBox kann sich in Zuständen MouseOver und UnChecked gleichzeitig befinden, aber es kann nicht gleichzeitig im MouseOver Zustand und Pressed sein.

Obwohl Sie jedem Element Objekte hinzufügen VisualState können, sind sie eine besonders nützliche Möglichkeit, um anderen das visuelle Verhalten eines Controlneu zu definieren. Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, das ein ControlTemplateverwendet, können Sie angeben, in welchen Zuständen das Steuerelement sich befinden kann, indem Sie seiner Klassendefinition eine TemplateVisualStateAttribute hinzufügen. Dann kann jeder, der ein neues ControlTemplate für Ihr Steuerelement erstellt, der Vorlage Objekte hinzufügen VisualState . Ermöglicht TemplateVisualStateAttribute Designertools wie Visual Studio und Blend für Visual Studio, die Zustände des Steuerelements verfügbar zu machen. Zustände mit demselben TemplateVisualStateAttribute.GroupName gehören in dasselbe VisualStateGroup.

Weitere Informationen zur Verwendung VisualStateGroup von -Objekten in einem ControlTemplatefinden Sie unter Anpassen der Darstellung eines vorhandenen Steuerelements durch Erstellen einer ControlTemplate. Weitere Informationen zum Erstellen von Steuerelementen, die verwenden VisualStateManager, finden Sie unter Erstellen eines Steuerelements mit anpassbarer Darstellung.

Die Transitions -Eigenschaft enthält VisualTransition -Objekte, die angewendet werden, wenn das Steuerelement zwischen Zuständen wechselt, die in definiert VisualStateGroupsind.

Konstruktoren

VisualStateGroup()

Initialisiert eine neue Instanz der VisualStateGroup-Klasse.

Eigenschaften

CurrentState

Ruft den VisualState ab, der derzeit auf das Steuerelement angewendet ist.

DependencyObjectType

Ruft den ab, der DependencyObjectType den CLR-Typ dieser Instanz umschließt.

(Geerbt von DependencyObject)
Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.

(Geerbt von DispatcherObject)
IsSealed

Ruft einen Wert ab, der angibt, ob diese Instanz derzeit versiegelt (schreibgeschützt) ist.

(Geerbt von DependencyObject)
Name

Ruft den Namen der VisualStateGroup ab oder legt diesen fest.

States

Ruft die Auflistung sich gegenseitig ausschließender VisualState-Objekte ab.

Transitions

Ruft die Auflistung von VisualTransition-Objekten ab.

Methoden

CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)
ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Eigenschaft. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyProperty-Bezeichner angegeben.

(Geerbt von DependencyObject)
ClearValue(DependencyPropertyKey)

Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die Eigenschaft, deren Wert gelöscht werden soll, wird durch einen DependencyPropertyKey angegeben.

(Geerbt von DependencyObject)
CoerceValue(DependencyProperty)

Erzwingt den Wert der angegebenen Abhängigkeitseigenschaft. Dies erfolgt durch den Aufruf einer beliebigen CoerceValueCallback-Funktion, die in den Metadaten für die Abhängigkeitseigenschaft angegeben ist, während sie beim aufrufenden DependencyObject beendet wird.

(Geerbt von DependencyObject)
Equals(Object)

Bestimmt, ob ein angegebenes DependencyObject dem aktuellen DependencyObject entspricht.

(Geerbt von DependencyObject)
GetHashCode()

Ruft einen Hashcode für diese DependencyObject ab.

(Geerbt von DependencyObject)
GetLocalValueEnumerator()

Erstellt einen spezialisierten Enumerator, mit dem bestimmt wird, welche Abhängigkeitseigenschaften dieses DependencyObject über lokal festgelegte Werte verfügen.

(Geerbt von DependencyObject)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft für diese Instanz eines DependencyObject zurück.

(Geerbt von DependencyObject)
InvalidateProperty(DependencyProperty)

Wertet den effektiven Wert für die angegebene Abhängigkeitseigenschaft erneut aus.

(Geerbt von DependencyObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Wird immer dann aufgerufen, wenn der effektive Wert einer Abhängigkeitseigenschaft für dieses DependencyObject aktualisiert wurde. Welche spezifische Abhängigkeitseigenschaft geändert wird, wird in den Ereignisdaten gemeldet.

(Geerbt von DependencyObject)
ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn dieser vorhanden ist.

(Geerbt von DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Legt den Wert einer Abhängigkeitseigenschaft fest, ohne deren Wertquelle zu ändern.

(Geerbt von DependencyObject)
SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die durch ihren Bezeichner angegeben ist.

(Geerbt von DependencyObject)
SetValue(DependencyPropertyKey, Object)

Legt den lokalen Wert einer schreibgeschützten Abhängigkeitseigenschaft fest, die durch den DependencyPropertyKey-Bezeichner der Abhängigkeitseigenschaft angegeben ist.

(Geerbt von DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der bereitgestellten Abhängigkeitseigenschaft serialisieren sollen.

(Geerbt von DependencyObject)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.

(Geerbt von DispatcherObject)

Ereignisse

CurrentStateChanged

Tritt nach dem Übergang eines Steuerelements in einen anderen Zustand ein.

CurrentStateChanging

Tritt ein, wenn der Übergang eines Steuerelements in einen anderen Zustand beginnt.

Gilt für: