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 . 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.