Freigeben über


VisualStateManager.GoToStateCore Methode

Definition

Beim Überschreiben in einer abgeleiteten Klasse übergibt ein Steuerelement zwischen Zuständen.

protected:
 virtual bool GoToStateCore(Control ^ control, FrameworkElement ^ templateRoot, Platform::String ^ stateName, VisualStateGroup ^ group, VisualState ^ state, bool useTransitions) = GoToStateCore;
bool GoToStateCore(Control const& control, FrameworkElement const& templateRoot, winrt::hstring const& stateName, VisualStateGroup const& group, VisualState const& state, bool const& useTransitions);
protected virtual bool GoToStateCore(Control control, FrameworkElement templateRoot, string stateName, VisualStateGroup group, VisualState state, bool useTransitions);
function goToStateCore(control, templateRoot, stateName, group, state, useTransitions)
Protected Overridable Function GoToStateCore (control As Control, templateRoot As FrameworkElement, stateName As String, group As VisualStateGroup, state As VisualState, useTransitions As Boolean) As Boolean

Parameter

control
Control

Das Steuerelement, dessen Zustand gewechselt werden soll.

templateRoot
FrameworkElement

Das Stammelement des ControlTemplate-Steuerelements.

stateName
String

Platform::String

winrt::hstring

Der Name des Zustands, in den gewechselt werden soll.

group
VisualStateGroup

Die VisualStateGroup , zu der der Zustand gehört.

state
VisualState

Die Darstellung des Zustands, in den gewechselt werden soll.

useTransitions
Boolean

bool

true , um eine VisualTransition für den Übergang zwischen Zuständen zu verwenden; andernfalls false.

Gibt zurück

Boolean

bool

true , wenn das Steuerelement erfolgreich in den neuen Zustand wechselt; andernfalls false.

Hinweise

Diese API ist Teil des Szenarios zum Definieren eines benutzerdefinierten VisualStateManager-Verhaltens . Das Überschreiben von GoToStateCore ändert das Zustandsverhalten in Ihrem benutzerdefinierten Klassenverhalten.

Um auf Ihre benutzerdefinierte VisualStateManager-Klasse zu verweisen, legen Sie den Wert der angefügten Eigenschaft VisualStateManager.CustomVisualStateManager in einer beliebigen Steuerelementvorlage fest, in der Sie das verhalten der benutzerdefinierten VisualStateManager-Klasse verwenden möchten. In der Regel erstellen Sie eine instance der benutzerdefinierten VisualStateManager-Klasse über die XAML-Standardkonstruktion in Application.Resources. Anschließend wird die angefügte VisualStateManager.CustomVisualStateManager-Eigenschaft mithilfe eines {StaticResource}-Markuperweiterungsverweis auf den Schlüssel der benutzerdefinierten VisualStateManager-Ressource festgelegt.

Hinweise zu Erben

Wenn ein Consumer Ihrer benutzerdefinierten VisualStateManager-KlasseGoToState aufruft, um den visuellen Zustand eines Steuerelements zu ändern, ist dies das Standardverhalten, das Sie überschreiben:+ Wenn visualState als name by stateName über ein Storyboard verfügt, beginnt das Storyboard.

  • Wenn der VisualState , den das Steuerelement vor dem neu angeforderten Zustand verwendet hat, über ein Storyboard verfügt, wird dieses Storyboard beendet. Wenn in der Gruppe kein VisualState for stateName vorhanden ist, sollte Ihre Implementierung false zurückgeben.

Wenn sich das Steuerelement bereits im angeforderten VisualState als stateName befindet, sollte Ihre Implementierung true zurückgeben.

Weitere Informationen zum Standardverhalten finden Sie unter GoToState.

Ereignisse für Änderungen des visuellen Zustands

CurrentStateChanging wird ausgelöst, wenn das Steuerelement beginnt, die Vom GoToState-Aufruf angeforderten Übergangszustände zu überstellen. Wenn eine VisualTransition auf die Zustandsänderung angewendet wird, tritt dieses Ereignis auf, wenn der Übergang beginnt.

CurrentStateChanged wird ausgelöst, nachdem sich das Steuerelement in dem vom GoToState-Aufruf angeforderten Zustand befindet, genau wie das neue Storyboard beginnt. Beim Abschluss des neuen Storyboards wird kein Ereignis ausgelöst.

Wenn eine VisualTransition nicht angewendet wird, werden CurrentStateChanging und CurrentStateChanged in schneller Folge ausgelöst, sind aber in dieser Reihenfolge garantiert, wenn beide auftreten.

Wenn ein Zustandsänderungsübergang jedoch durch einen neuen GoToState-Aufruf unterbrochen wird, wird das CurrentStateChanged-Ereignis für den ersten Zustandsübergang nie ausgelöst. Eine neue Ereignisreihe wird für die nächste angeforderte Zustandsänderung ausgelöst.

Das Überschreiben des Verhaltens von RaiseCurrentStateChanged und RaiseCurrentStateChanging ist optional: Wie und wann die Ereignisse durch die Standardimplementierung ausgelöst werden, kann für Ihre benutzerdefinierte Klasse angemessen sein.

Gilt für:

Weitere Informationen