VisualStateManager.GoToStateCore Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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.