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 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; falseandernfalls .

Gibt zurück

Boolean

bool

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

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 im groupvorhanden ist, sollte Ihre Implementierung zurückgeben false.
  • Wenn sich das Steuerelement bereits im angeforderten VisualState als stateNamebefindet, sollte ihre Implementierung zurückgeben true.

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.

Gilt für:

Weitere Informationen