(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

VisualStateManager-Klasse

Verwaltet Zustände und die Logik für Übergänge zwischen Zuständen für Steuerelemente.

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

public class VisualStateManager : DependencyObject
<VisualStateManager .../>

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

  NameBeschreibung
Öffentliche MethodeVisualStateManagerInitialisiert eine neue Instanz der VisualStateManager-Klasse.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftDependencyObjectTypeRuft den DependencyObjectType ab, der den CLR-Typ dieser Instanz umschließt.  (Von DependencyObject geerbt.)
Öffentliche EigenschaftDispatcherRuft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist. (Von DispatcherObject geerbt.)
Öffentliche EigenschaftIsSealedRuft einen Wert ab, der angibt, ob diese Instanz derzeit versiegelt (schreibgeschützt) ist. (Von DependencyObject geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche angefügte EigenschaftCustomVisualStateManagerRuft das VisualStateManager-Objekt ab, das zwischen den Zuständen eines Steuerelements wechselt, oder legt dieses fest.
Öffentliche angefügte EigenschaftVisualStateGroupsRuft eine Auflistung der VisualStateGroup-Objekte ab oder legt diese fest.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeCheckAccessBestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Öffentliche MethodeClearValue(DependencyProperty)Löscht den lokalen Wert einer Eigenschaft. Die zu löschende Eigenschaft wird mit einem DependencyProperty-Bezeichner angegeben. (Von DependencyObject geerbt.)
Öffentliche MethodeClearValue(DependencyPropertyKey)Löscht den lokalen Wert einer schreibgeschützten Eigenschaft. Die zu löschende Eigenschaft wird mit einem DependencyPropertyKey angegeben. (Von DependencyObject geerbt.)
Öffentliche MethodeCoerceValueWandelt 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 MethodeEqualsBestimmt, ob ein angegebenes DependencyObject dem aktuellen DependencyObject entspricht. (Von DependencyObject geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeStatischer MemberGetCustomVisualStateManagerRuft die angefügte CustomVisualStateManager-Eigenschaft ab.
Öffentliche MethodeGetHashCodeRuft einen Hashcode für dieses DependencyObject ab. (Von DependencyObject geerbt.)
Öffentliche MethodeGetLocalValueEnumeratorErstellt einen spezialisierten Enumerator, mit dem bestimmt wird, welche Abhängigkeitseigenschaften dieses DependencyObject über lokal festgelegte Werte verfügen. (Von DependencyObject geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeGetValueGibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft in dieser Instanz eines DependencyObject zurück. (Von DependencyObject geerbt.)
Öffentliche MethodeStatischer MemberGetVisualStateGroupsRuft die angefügte VisualStateManager.VisualStateGroups-Eigenschaft ab.
Öffentliche MethodeStatischer MemberGoToElementStateWechselt zwischen zwei Zuständen des Elements. Verwenden Sie diese Methode zum Wechseln von Zuständen, die von einer Anwendung und nicht von einem Steuerelement definiert werden.
Öffentliche MethodeStatischer MemberGoToStateWechselt zwischen zwei Zuständen des Steuerelements. Verwenden Sie diese Methode für Übergänge zwischen Zuständen in Steuerelementen mit ControlTemplate.
Geschützte MethodeGoToStateCoreWechselt zwischen den Zuständen eines Steuerelements.
Öffentliche MethodeInvalidatePropertyBerechnet den effektiven Wert für die angegebene Abhängigkeitseigenschaft neu (Von DependencyObject geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte MethodeOnPropertyChangedWird 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.)
Geschützte MethodeRaiseCurrentStateChangedLöst das CurrentStateChanging-Ereignis für das angegebene VisualStateGroup-Objekt aus.
Geschützte MethodeRaiseCurrentStateChangingLöst das CurrentStateChanging-Ereignis für das angegebene VisualStateGroup-Objekt aus.
Öffentliche MethodeReadLocalValueGibt, sofern vorhanden, den lokalen Wert einer Abhängigkeitseigenschaft zurück. (Von DependencyObject geerbt.)
Öffentliche MethodeSetCurrentValueLegt den Wert einer -Abhängigkeitseigenschaft fest, ohne die Wertquelle zu ändern. (Von DependencyObject geerbt.)
Öffentliche MethodeStatischer MemberSetCustomVisualStateManagerLegt die angefügte CustomVisualStateManager-Eigenschaft fest.
Öffentliche MethodeSetValue(DependencyProperty, Object)Legt den lokalen Wert einer Abhängigkeitseigenschaft fest, die über ihren Bezeichner angegeben wird. (Von DependencyObject geerbt.)
Öffentliche MethodeSetValue(DependencyPropertyKey, Object)Legt den lokalen Wert einer schreibgeschützten Abhängigkeitseigenschaft fest, die über ihren DependencyPropertyKey-Bezeichner angegeben wird. (Von DependencyObject geerbt.)
Geschützte MethodeShouldSerializePropertyGibt einen Wert zurück, der angibt, ob Serialisierungsprozesse den Wert der bereitgestellten Abhängigkeitseigenschaft serialisieren sollen. (Von DependencyObject geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche MethodeVerifyAccessErzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann. (Von DispatcherObject geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliches FeldStatischer MemberCustomVisualStateManagerPropertyBezeichnet die CustomVisualStateManager-Abhängigkeitseigenschaft.
Öffentliches FeldStatischer MemberVisualStateGroupsPropertyBezeichnet die VisualStateGroups-Abhängigkeitseigenschaft.
Zum Seitenanfang

VisualStateManager ermöglicht es Ihnen, Zustände für ein Steuerelement anzugeben, die Darstellung eines Steuerelements, wenn es in einem bestimmten Zustand ist und wenn ein Steuerelement Zustände ändert. 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"). Die Darstellung eines Steuerelements, wenn es in einem Zustand ist, wird von einem VisualState definiert. Ein VisualState enthält eine Auflistung von Storyboard-Objekten, die angeben, wie sich die Darstellung des Steuerelements ändert, wenn sich das Steuerelement in diesem Zustand befindet. Sie fügen visuelle Zustände zu einem Steuerelement hinzu, indem Sie die angefügte VisualStateManager.VisualStateGroups-Eigenschaft des Steuerelements festlegen. Jede VisualStateGroup enthält eine Auflistung sich gegenseitig ausschließender VisualState-Objekte. Das heißt, das Steuerelement befindet sich immer genau in einem Zustand in jeder VisualStateGroup.

Der VisualStateManager ermöglicht es Ihnen zudem anzugeben, wann ein Steuerelement in einen bestimmten Zustand eintritt. Die Methode, die Sie aufrufen sollten, um Zustände zu ändern, hängt vom Szenario ab. Wenn Sie ein Steuerelement erstellen, dass den VisualStateManager in seiner ControlTemplate verwendet, rufen Sie die GoToState-Methode auf. Weitere Informationen zum Erstellen von Steuerelementen, die den VisualStateManager verwenden, finden Sie unter Erstellen eines Steuerelements mit einer anpassbaren Darstellung. Wenn Sie den VisualStateManager außerhalb einer ControlTemplate verwenden (Z. B., wenn Sie einen VisualStateManager in einem UserControl oder einem einzelnen Element verwenden), rufen Sie die GoToElementState-Methode auf. In jedem Fall führt VisualStateManager die erforderliche Logik aus, um die dem betreffenden Zustand zugeordneten Storyboards zu starten und zu beenden. Angenommen, ein Steuerelement definiert die Zustände, State1 und State2, von denen jedem ein Storyboard zugeordnet ist. Wenn das Steuerelement in State1 ist, und Sie übergeben State2 an GoToState oder GoToElementState, startet der VisualStateManager das Storyboard in State2 und beendet das Storyboard in State1.

Steuerelemente, die in Windows Presentation Foundation (WPF) enthalten sind, ändern visuelle Zustände mithilfe des VisualStateManager. Wenn Sie eine ControlTemplate für ein Steuerelement erstellen, das in WPF enthalten ist, können Sie VisualState-Objekte zur ControlTemplate des Steuerelements hinzufügen, um die Darstellung des Steuerelements in einem bestimmten Zustand anzugeben. Informationen zum Suchen der Namen des visuellen Zustände für die Steuerelemente, die in WPF enthalten sind, finden Sie unter Steuerelementformate und -vorlagen. Die Logik des Steuerelements behandelt den Übergang zwischen Zuständen, deshalb müssen Sie nur die VisualState-Objekte in der neuen ControlTemplate definieren. Weitere Informationen zum Erstellen von Steuerelementvorlagen für vorhandene Steuerelemente finden Sie unter Anpassen der Darstellung eines vorhandenen Steuerelements durch Erstellen einer ControlTemplate.

Wenn Sie eine eigene Logik für Übergänge zwischen Zuständen implementieren möchten, müssen Sie von VisualStateManager erben, die GoToStateCore-Methode überschreiben und die angefügte VisualStateManager.CustomVisualStateManager-Eigenschaft auf das Steuerelement festlegen, das die benutzerdefinierte Logik verwendet.

Im folgenden Beispiel wird ein Rectangle erstellt und ein VisualStateGroup namens CommonStates der angefügten VisualStateManager.VisualStatesGroups-Eigenschaft hinzugefügt. Dieses Beispiel definiert das MouseOver-Objekt und das NormalVisualState-Objekt in CommonStatesVisualStateGroup. Wenn der Benutzer den Mauszeiger über das Rectangle führt, wechselt seine Farbe für eine halbe Sekunde von rot nach grün. Wenn der Benutzer die Maus vom Rechteck entfernt, wechselt das Grid sofort zu rot zurück. Beachten Sie, dass der Normal-Zustand Storyboard nicht definiert. Ein Storyboard ist nicht erforderlich, da beim Übergang des Rectangle vom MouseOver-Zustand in den Normal-Zustand das Storyboard für MouseOver angehalten wird und die Color-Eigenschaft für die SolidColorBrush auf rot zurückwechselt.


<Rectangle Name="rect" 
           Width="100" Height="100"
           MouseEnter="rect_MouseEvent" 
           MouseLeave="rect_MouseEvent">
  <VisualStateManager.VisualStateGroups>
    <VisualStateGroup Name="MouseStates">
      <VisualState Name="MouseEnter">
        <Storyboard>
          <ColorAnimation To="Green" 
                          Storyboard.TargetName="rectBrush" 
                          Storyboard.TargetProperty="Color"/>
        </Storyboard>
      </VisualState>
      <VisualState Name="MouseLeave" />
      <VisualStateGroup.Transitions>
        <VisualTransition To="MouseLeave" GeneratedDuration="00:00:00"/>

        <VisualTransition To="MouseEnter" GeneratedDuration="00:00:00.5">
          <VisualTransition.GeneratedEasingFunction>
            <ExponentialEase EasingMode="EaseOut" Exponent="10"/>
          </VisualTransition.GeneratedEasingFunction>
        </VisualTransition>

      </VisualStateGroup.Transitions>
    </VisualStateGroup>
  </VisualStateManager.VisualStateGroups>

  <Rectangle.Fill>
    <SolidColorBrush x:Name="rectBrush" Color="Red"/>
  </Rectangle.Fill>
</Rectangle>


Im folgenden Beispiel wird der Ereignishandler veranschaulicht, der im vorherigen Beispiel definiert wurde, und die GoToElementState-Methode für den Übergang zwischen Zuständen aufgerufen. Wenn das Rechteck im vorherigen Beispiel Teil einer ControlTemplate war, muss im Beispiel die GoToState-Methode aufgerufen werden.


private void rect_MouseEvent(object sender, MouseEventArgs e)
{
    if (rect.IsMouseOver)
    {
        VisualStateManager.GoToElementState(rect, "MouseEnter", true);
    }
    else
    {
        VisualStateManager.GoToElementState(rect, "MouseLeave", true);
    }
}


.NET Framework

Unterstützt in: 4.5, 4

.NET Framework Client Profile

Unterstützt in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. 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.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft