VisualStateManager.GoToStateCore Methode

Definition

Wenn sie in einer abgeleiteten Klasse überschrieben wird, übergibt ein Steuerelement zwischen den 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, das zwischen den Zuständen wechselt.

templateRoot
FrameworkElement

Das Stammelement der ControlTemplate des Steuerelements.

stateName
String

Platform::String

winrt::hstring

Der Name des Zugängenzustands.

group
VisualStateGroup

Die VisualStateGroup , zu der der Status gehört.

state
VisualState

Die Darstellung des Zugängenzustands.

useTransitions
Boolean

bool

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

Gibt zurück

Boolean

bool

truewenn das Steuerelement erfolgreich in den neuen Zustand wechselt; andernfalls . false

Hinweise

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

Um auf Die benutzerdefinierte VisualStateManager-Klasse zu verweisen, legen Sie den Wert der angefügten Eigenschaft "VisualStateManager.CustomVisualStateManager " innerhalb einer Steuerelementvorlage fest, in der Sie das verhalten der benutzerdefinierten VisualStateManager Klasse verwenden möchten. In der Regel erstellen Sie eine Instanz 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}-Markuperweiterungsverweises auf den Schlüssel der benutzerdefinierten VisualStateManager Ressource festgelegt.

Hinweise zu Vererbungen

Wenn ein Consumer Ihrer benutzerdefinierten VisualStateManager-KlasseGoToState aufruft, um den visuellen Zustand eines Steuerelements zu ändern, ist dies das Standardverhalten, das Sie außer Kraft setzen:+ Wenn visualState wie benannt von stateName einem 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 groupImplementierung kein VisualState-ElementstateName vorhanden ist, sollte die Implementierung zurückgegeben werdenfalse.
  • Wenn sich das Steuerelement bereits in visualState befindet, das stateNameangefordert wurde, sollte die Implementierung zurückgegeben werden true.

Weitere Informationen zum Standardverhalten finden Sie unter GoToState.

Ereignisse für Änderungen des visuellen Zustands

CurrentStateChanging wird ausgelöst, wenn das Steuerelement mit dem Übergang von Status beginnt, 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 im Zustand befindet, wie vom GoToState-Aufruf angefordert, genauso wie das neue Storyboard beginnt. Beim Abschluss des neuen Storyboards wird kein Ereignis ausgelöst.

Wenn eine VisualTransition nicht angewendet wird, wird CurrentStateChanging und CurrentStateChanged schnell hintereinander ausgelöst, werden aber 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 durch die Standardimplementierung ausgelöst werden, ist möglicherweise für Ihre benutzerdefinierte Klasse geeignet.

Gilt für:

Weitere Informationen