VisualStateManager.GoToStateCore Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cuando se invalida en una clase derivada, realiza una transición de un control entre estados.
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
Parámetros
- control
- Control
Control del que se va a realizar la transición entre estados.
- templateRoot
- FrameworkElement
Elemento raíz de la clase ControlTemplate del control.
- stateName
-
String
Platform::String
winrt::hstring
Nombre del estado al que se realiza la transición.
- group
- VisualStateGroup
VisualStateGroup al que pertenece el estado.
- state
- VisualState
Representación del estado al que se va a realizar la transición.
- useTransitions
-
Boolean
bool
true
para usar visualTransition para realizar la transición entre estados; de lo contrario, false
.
Devoluciones
bool
true
si el control realiza correctamente la transición al nuevo estado; de lo contrario, false
.
Comentarios
Esta API forma parte del escenario de definición de un comportamiento personalizado de VisualStateManager . Invalidar GoToStateCore
cambia el comportamiento de estado en el comportamiento de la clase personalizada.
Para hacer referencia a la clase VisualStateManager personalizada, establezca el valor de la propiedad adjunta VisualStateManager.CustomVisualStateManager dentro de cualquier plantilla de control en la que desee usar el comportamiento de clase personalizada VisualStateManager
. Normalmente, se crea una instancia de la clase personalizada VisualStateManager
mediante la construcción XAML predeterminada en Application.Resources. A continuación, la VisualStateManager.CustomVisualStateManager
propiedad adjunta se establece mediante una referencia de extensión de marcado {StaticResource} a la clave del recurso personalizado VisualStateManager
.
Notas a los heredadores
Cuando un consumidor de la clase VisualStateManager personalizada llama a GoToState para cambiar el estado visual de un control, este es el comportamiento predeterminado que se va a invalidar:+ Si visualState tal y como se denomina tiene stateName
un guión gráfico, comienza el guión gráfico.
- Si el objeto VisualState que el control usaba antes del estado recién solicitado tiene un guión gráfico, ese guión gráfico se detiene.
- Si no existe un objeto VisualState para
stateName
engroup
, la implementación debe devolverfalse
. - Si el control ya está en visualState solicitado como
stateName
, la implementación debe devolvertrue
.
Para obtener más información sobre el comportamiento predeterminado, consulta GoToState.
Eventos para cambios de estado visual
CurrentStateChanging se desencadena cuando el control comienza a realizar la transición de estados según lo solicitado por la llamada a GoToState . Si se aplica visualTransition al cambio de estado, este evento se produce cuando comienza la transición.
CurrentStateChanged se activa después de que el control esté en el estado según lo solicitado por la llamada a GoToState , al igual que comienza el nuevo Guión gráfico . No se desencadena ningún evento en la finalización del nuevo guión gráfico.
Si no se aplica visualTransition , CurrentStateChanging y CurrentStateChanged se activan en sucesión rápida, pero se garantizan en ese orden si se producen ambos.
Sin embargo, si una nueva llamada a GoToState interrumpe una transición de cambio de estado, el evento CurrentStateChanged nunca se genera para la primera transición de estado. Se desencadena una nueva serie de eventos para el siguiente cambio de estado solicitado.
Reemplazar el comportamiento de RaiseCurrentStateChanged y RaiseCurrentStateChanging es opcional: cómo y cuándo se generan los eventos por la implementación predeterminada podría ser adecuado para la clase personalizada.