VisualStateManager.GoToStateCore Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Quando sottoposto a override in una classe derivata, esegue la transizione di un controllo tra stati.
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
Parametri
- control
- Control
Controllo da eseguire per la transizione tra stati.
- templateRoot
- FrameworkElement
Elemento radice del ControlTemplate del controllo.
- stateName
-
String
Platform::String
winrt::hstring
Nome dello stato a cui eseguire la transizione.
- group
- VisualStateGroup
Oggetto VisualStateGroup a cui appartiene lo stato.
- state
- VisualState
Rappresentazione dello stato a cui eseguire la transizione.
- useTransitions
-
Boolean
bool
true per usare un oggetto VisualTransition per la transizione tra stati; in caso contrario, false.
Valori restituiti
bool
true se il controllo passa correttamente al nuovo stato; in caso contrario, false.
Commenti
Questa API fa parte dello scenario di definizione di un comportamento di VisualStateManager personalizzato. L'override GoToStateCore modifica il comportamento dello stato nel comportamento della classe personalizzata.
Per fare riferimento alla classe VisualStateManager personalizzata, impostare il valore della proprietà associata VisualStateManager.CustomVisualStateManager all'interno di qualsiasi modello di controllo in cui si vuole usare il comportamento della classe personalizzata VisualStateManager . In genere si crea un'istanza della classe personalizzata VisualStateManager tramite la costruzione XAML predefinita in Application.Resources. La VisualStateManager.CustomVisualStateManager proprietà associata viene quindi impostata usando un riferimento all'estensione di markup {StaticResource} alla chiave della risorsa personalizzata VisualStateManager .
Note per gli eredi
Quando un consumer della classe VisualStateManager personalizzata chiama GoToState per modificare lo stato di visualizzazione di un controllo, questo è il comportamento predefinito di cui si sta eseguendo l'override:+ Se VisualState come denominato da stateName ha uno Storyboard, inizia lo storyboard.
- Se l'oggetto VisualState utilizzato dal controllo prima dello stato appena richiesto ha uno Storyboard, tale storyboard si arresta.
- Se un oggetto VisualState per
stateNamenon esiste in , l'implementazionegroupdeve restituirefalse. - Se il controllo è già presente in VisualState richiesto come
stateName, l'implementazione deve restituiretrue.
Per altre info sul comportamento predefinito, vedi GoToState.
Eventi per le modifiche dello stato di visualizzazione
CurrentStateChanging viene attivato quando il controllo inizia a eseguire la transizione degli stati come richiesto dalla chiamata GoToState . Se un oggetto VisualTransition viene applicato alla modifica dello stato, questo evento si verifica all'inizio della transizione.
CurrentStateChanged viene attivato dopo che il controllo è nello stato richiesto dalla chiamata GoToState , proprio come inizia il nuovo storyboard . Nessun evento viene generato al completamento del nuovo storyboard.
Se un oggetto VisualTransition non viene applicato, CurrentStateChanging e CurrentStateChanged vengono attivati in rapida successione, ma sono garantiti in tale ordine se entrambi si verificano.
Tuttavia, se una transizione di modifica dello stato viene interrotta da una nuova chiamata GoToState , l'evento CurrentStateChanged non viene mai generato per la transizione del primo stato. Viene generata una nuova serie di eventi per la successiva modifica dello stato richiesta.
L'override del comportamento di RaiseCurrentStateChanged e RaiseCurrentStateChanging è facoltativo: come e quando gli eventi vengono generati dall'implementazione predefinita potrebbero essere adeguati per la classe personalizzata.