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.

VisualStateGroup-Klasse

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

Namespace:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
[RuntimeNamePropertyAttribute("Name")]
[ContentPropertyAttribute("States")]
public class VisualStateGroup : DependencyObject
<VisualStateGroup>
  States
</VisualStateGroup>

Der VisualStateGroup-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Methode VisualStateGroup Initialisiert eine neue Instanz der VisualStateGroup-Klasse.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Eigenschaft CurrentState Ruft den VisualState ab, der derzeit auf das Steuerelement angewendet ist.
Öffentliche Eigenschaft DependencyObjectType Ruft den DependencyObjectType ab, der den CLR-Typ dieser Instanz umschließt.  (Von DependencyObject geerbt.)
Öffentliche Eigenschaft Dispatcher Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist. (Von DispatcherObject geerbt.)
Öffentliche Eigenschaft IsSealed Ruft einen Wert ab, der angibt, ob diese Instanz derzeit versiegelt (schreibgeschützt) ist. (Von DependencyObject geerbt.)
Öffentliche Eigenschaft Name Ruft den Namen der VisualStateGroup-Klasse ab oder legt diesen fest.
Öffentliche Eigenschaft States Ruft die Auflistung sich gegenseitig ausschließender VisualState-Objekte ab.
Öffentliche Eigenschaft Transitions Ruft die Auflistung von VisualTransition-Objekten ab.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Methode CheckAccess Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Öffentliche Methode ClearValue(DependencyProperty) Löscht den lokalen Wert einer Eigenschaft. Die zu löschende Eigenschaft wird mit einem DependencyProperty-Bezeichner angegeben. (Von DependencyObject geerbt.)
Öffentliche Methode ClearValue(DependencyPropertyKey) Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die zu löschende Eigenschaft wird mit einem DependencyPropertyKey angegeben. (Von DependencyObject geerbt.)
Öffentliche Methode CoerceValue Wandelt den Wert der angegebenen Abhängigkeitseigenschaft um. Für die Umwandlung wird eine vorhandene CoerceValueCallback-Funktion aufgerufen, die in den Metadaten der Abhängigkeitseigenschaft für das aufrufende DependencyObject angegeben ist. (Von DependencyObject geerbt.)
Öffentliche Methode Equals Bestimmt, ob ein angegebenes DependencyObject dem aktuellen DependencyObject entspricht. (Von DependencyObject geerbt.)
Geschützte Methode Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.)
Öffentliche Methode GetHashCode Ruft einen Hashcode für dieses DependencyObject ab. (Von DependencyObject geerbt.)
Öffentliche Methode GetLocalValueEnumerator Erstellt einen spezialisierten Enumerator, mit dem bestimmt wird, welche Abhängigkeitseigenschaften dieses DependencyObject über lokal festgelegte Werte verfügen. (Von DependencyObject geerbt.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode GetValue Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft in dieser Instanz eines DependencyObject zurück. (Von DependencyObject geerbt.)
Öffentliche Methode InvalidateProperty Berechnet den effektiven Wert für die angegebene Abhängigkeitseigenschaft neu (Von DependencyObject geerbt.)
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte Methode OnPropertyChanged Wird immer dann aufgerufen, wenn der tatsächliche Wert einer Abhängigkeitseigenschaft eines DependencyObject aktualisiert wurde. Die spezifische Abhängigkeitseigenschaft, die sich geändert hat, wird in den Ereignisdaten angegeben. (Von DependencyObject geerbt.)
Öffentliche Methode ReadLocalValue Gibt, sofern vorhanden, den lokalen Wert einer Abhängigkeitseigenschaft zurück. (Von DependencyObject geerbt.)
Öffentliche Methode SetCurrentValue Legt den Wert einer -Abhängigkeitseigenschaft fest, ohne die Wertquelle zu ändern. (Von DependencyObject geerbt.)
Öffentliche Methode SetValue(DependencyProperty, Object) Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die über ihren Bezeichner angegeben wird. (Von DependencyObject geerbt.)
Öffentliche Methode SetValue(DependencyPropertyKey, Object) Legt den lokalen Wert einer schreibgeschützten Abhängigkeitseigenschaft fest, die über ihren DependencyPropertyKey-Bezeichner angegeben wird. (Von DependencyObject geerbt.)
Geschützte Methode ShouldSerializeProperty Gibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der bereitgestellten Abhängigkeitseigenschaft serialisieren sollen. (Von DependencyObject geerbt.)
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche Methode VerifyAccess Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Zum Seitenanfang
  Name Beschreibung
Öffentliches Ereignis CurrentStateChanged Tritt nach dem Übergang eines Steuerelements in einen anderen Zustand ein.
Öffentliches Ereignis CurrentStateChanging Tritt ein, wenn der Übergang eines Steuerelements in einen anderen Zustand beginnt.
Zum Seitenanfang

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 VisualStateManager.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. Das TemplateVisualStateAttribute aktiviert Designertools, z. B. Expression Blend, um die Zustände des Steuerelements verfügbar zu machen. 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.

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

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.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ