Partilhar via


VisualStateManager.GoToStateCore Método

Definição

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

Boolean

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 . Substituir GoToStateCore 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 personalizado da classe VisualStateManager . Normalmente, você cria uma instância da classe VisualStateManager personalizada por meio da construção XAML padrão em Application.Resources. Em seguida, a propriedade anexada VisualStateManager.CustomVisualStateManager é 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 para stateName não existir no grupo, sua implementação deverá retornar false.

Se o controle já estiver no VisualState solicitado como stateName, sua implementação deverá retornar true.

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.

Aplica-se a

Confira também