VisualStateManager.GoToStateCore Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Quando substituído em uma classe derivada, faz a transição de um controle 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
O controle para fazer a transição entre estados.
- templateRoot
- FrameworkElement
O elemento raiz do ControlTemplate do controle.
- stateName
-
String
Platform::String
winrt::hstring
O nome do estado para o qual a transição será feita.
- group
- VisualStateGroup
O VisualStateGroup ao qual o estado pertence.
- state
- VisualState
A representação do estado para o qual a transição será feita.
- useTransitions
-
Boolean
bool
true
para usar um VisualTransition para fazer a transição entre estados; caso contrário, false
.
Retornos
bool
true
se o controle fizer a transição com êxito para o novo estado; caso contrário, false
.
Comentários
Essa API faz parte do cenário de definição de um comportamento personalizado do VisualStateManager .
GoToStateCore
Substituir altera o comportamento de estado em seu comportamento de classe personalizada.
Para fazer referência à classe VisualStateManager personalizada, defina o valor da propriedade anexada VisualStateManager.CustomVisualStateManager em qualquer modelo de controle em que você queira usar o comportamento de classe personalizada VisualStateManager
. Normalmente, você cria uma instância da classe personalizada VisualStateManager
por meio da construção XAML padrão em Application.Resources. Em seguida, a VisualStateManager.CustomVisualStateManager
propriedade anexada é definida usando uma referência de extensão de marcação {StaticResource} à chave do recurso personalizado VisualStateManager
.
Anotações aos herdadores
Quando um consumidor da classe VisualStateManager personalizada chama GoToState para alterar o estado visual de um controle, esse é o comportamento padrão que você está substituindo:+ Se o VisualState como nomeado por stateName
tiver um Storyboard, o storyboard começará.
- Se o VisualState que o controle estava usando antes do estado recém-solicitado tiver um Storyboard, esse storyboard será interrompido.
- Se um VisualState for
stateName
não existir no , suagroup
implementação deverá retornarfalse
. - Se o controle já estiver no VisualState solicitado como
stateName
, sua implementação deverá retornartrue
.
Para obter mais informações sobre o comportamento padrão, consulte GoToState.
Eventos para alterações de estado visual
CurrentStateChanging é acionado quando o controle começa a fazer a transição de estados conforme solicitado pela chamada GoToState . Se um VisualTransition for aplicado à alteração de estado, esse evento ocorrerá quando a transição começar.
CurrentStateChanged é acionado depois que o controle está no estado conforme solicitado pela chamada goToState , assim como o novo Storyboard começa. Nenhum evento é acionado na conclusão do novo storyboard.
Se um VisualTransition não for aplicado, CurrentStateChanging e CurrentStateChanged serão acionados em rápida sucessão, mas serão garantidos nessa ordem se ambos ocorrerem.
No entanto, se uma transição de alteração de estado for interrompida por uma nova chamada GoToState , o evento CurrentStateChanged nunca será gerado para a primeira transição de estado. Uma nova série de eventos é disparada para a próxima alteração de estado solicitada.
Substituir o comportamento de RaiseCurrentStateChanged e RaiseCurrentStateChanging é opcional: como e quando os eventos são gerados pela implementação padrão podem ser adequados para sua classe personalizada.