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 der ControlTemplate des 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; false
andernfalls .
Gibt zurück
bool
true
, wenn das Steuerelement erfolgreich in den neuen Zustand wechselt; false
andernfalls .
Hinweise
Diese API ist Teil des Szenarios zum Definieren eines benutzerdefinierten VisualStateManager-Verhaltens . Durch das GoToStateCore
Überschreiben wird das Zustandsverhalten in Ihrem benutzerdefinierten Klassenverhalten geändert.
Um auf Ihre benutzerdefinierte VisualStateManager-Klasse zu verweisen, legen Sie den Wert der angefügten VisualStateManager.CustomVisualStateManager-Eigenschaft 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 standardmäßige XAML-Konstruktion in Application.Resources. Anschließend wird die VisualStateManager.CustomVisualStateManager
angefügte 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 benannt von 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 kein VisualState für
stateName
imgroup
vorhanden ist, sollte Ihre Implementierung zurückgebenfalse
. - Wenn sich das Steuerelement bereits im angeforderten VisualState als
stateName
befindet, sollte ihre Implementierung zurückgebentrue
.
Weitere Informationen zum Standardverhalten finden Sie unter GoToState.
Ereignisse für Änderungen des visuellen Zustands
CurrentStateChanging wird ausgelöst, wenn das Steuerelement beginnt, Zustände zu übergehen, wie vom GoToState-Aufruf angefordert. 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 kurzer Folge ausgelöst, sind jedoch in dieser Reihenfolge garantiert, wenn beide auftreten.
Wenn jedoch ein Zustandsänderungsübergang durch einen neuen GoToState-Aufruf unterbrochen wird, wird das CurrentStateChanged-Ereignis nie für den ersten Zustandsübergang ausgelöst. Für die nächste angeforderte Zustandsänderung wird eine neue Ereignisreihe ausgelöst.
Das Überschreiben des Verhaltens von RaiseCurrentStateChanged und RaiseCurrentStateChanging ist optional: Wie und wann die Ereignisse von der Standardimplementierung ausgelöst werden, kann für Ihre benutzerdefinierte Klasse angemessen sein.