Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe VisualStateManager

Gerencia os estados e a lógica para fazer a transição entre estados para controles.

Namespace:  System.Windows
Assembly:  PresentationFramework (em PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
public class VisualStateManager : DependencyObject
<VisualStateManager .../>

O tipo VisualStateManager expõe os membros a seguir.

  NomeDescrição
Método públicoVisualStateManager Inicializa uma nova instância da classe VisualStateManager .
Superior
  NomeDescrição
Propriedade públicaDependencyObjectType Obtém o DependencyObjectType que envolve o tipo de instância da CLR. (Herdado de DependencyObject.)
Propriedade públicaDispatcherObtém o Dispatcher esse DispatcherObject está associado. (Herdado de DispatcherObject.)
Propriedade públicaIsSealed Obtém um valor que indica se essa instância atualmente é selada (somente leitura). (Herdado de DependencyObject.)
Superior
  NomeDescrição
Propriedade anexada públicaCustomVisualStateManagerObtém ou define o VisualStateManager objeto que faz a transição entre os estados de um controle.
Propriedade anexada públicaVisualStateGroupsObtém ou define uma coleção de VisualStateGroup objetos.
Superior
  NomeDescrição
Método públicoCheckAccessDetermina se o segmento de chamada tem acesso a este DispatcherObject. (Herdado de DispatcherObject.)
Método públicoClearValue(DependencyProperty)Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um identificador da DependencyProperty. (Herdado de DependencyObject.)
Método públicoClearValue(DependencyPropertyKey)Limpa o valor local de uma propriedade somente leitura. A propriedade a ser limpa é especificada por uma DependencyPropertyKey. (Herdado de DependencyObject.)
Método públicoCoerceValueConverte o valor especificado propriedade de dependência. Isso é feito chamando qualquer CoerceValueCallback especificada na metadados de propriedade para a propriedade de dependência conforme ela existe na chamada de função DependencyObject. (Herdado de DependencyObject.)
Método públicoEqualsDetermina se um fornecido DependencyObject é equivalente à atual DependencyObject. (Herdado de DependencyObject.)
Método protegidoFinalize Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)
Método públicoMembro estáticoGetCustomVisualStateManagerObtém o CustomVisualStateManager anexado a propriedade.
Método públicoGetHashCodeObtém um código de hash para este DependencyObject. (Herdado de DependencyObject.)
Método públicoGetLocalValueEnumeratorCria um enumerador especializado para determinar quais propriedades de dependência localmente têm definir valores nessa DependencyObject. (Herdado de DependencyObject.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoGetValueRetorna o valor atual de efetivo de um propriedade de dependência nesta instância de um DependencyObject. (Herdado de DependencyObject.)
Método públicoMembro estáticoGetVisualStateGroupsObtém o VisualStateManager.VisualStateGroups anexado a propriedade.
Método públicoMembro estáticoGoToElementStateFaz a transição do elemento entre dois estados. Use esse método para estados de transição que são definidos por um aplicativo, em vez de definidos por um controle.
Método públicoMembro estáticoGoToStateFaz a transição do controle entre dois estados. Use esse método para estados de transição no controle que tem um ControlTemplate.
Método protegidoGoToStateCoreFaz a transição de um controle entre os estados.
Método públicoInvalidatePropertyAvalia o valor efetivo de propriedade de dependência especificado (Herdado de DependencyObject.)
Método protegidoMemberwiseCloneCria uma cópia superficial do Object atual. (Herdado de Object.)
Método protegidoOnPropertyChangedChamado sempre que o valor efetivo de qualquer propriedade de dependência sobre isso DependencyObject foi atualizado. A propriedade de dependência específicos que alterado é relatada nos dados de evento. (Herdado de DependencyObject.)
Método protegidoRaiseCurrentStateChangedEleva o CurrentStateChanging evento especificado VisualStateGroup objeto.
Método protegidoRaiseCurrentStateChangingEleva o CurrentStateChanging evento especificado VisualStateGroup objeto.
Método públicoReadLocalValueRetorna o valor de local de um propriedade de dependência, se ele existir. (Herdado de DependencyObject.)
Método públicoSetCurrentValueDefine o valor de um propriedade de dependência sem alterar sua fonte de valor. (Herdado de DependencyObject.)
Método públicoMembro estáticoSetCustomVisualStateManagerConjuntos de CustomVisualStateManager anexado a propriedade.
Método públicoSetValue(DependencyProperty, Object)Define o valor de local de um propriedade de dependência, especificado por seu identificador de propriedade de dependência. (Herdado de DependencyObject.)
Método públicoSetValue(DependencyPropertyKey, Object)Define o valor de local de somente leitura propriedade de dependência, especificado pelo DependencyPropertyKey identificador de propriedade de dependência. (Herdado de DependencyObject.)
Método protegidoShouldSerializePropertyRetorna um valor que indica se os processos de serialização devem serializar o valor para o fornecido propriedade de dependência. (Herdado de DependencyObject.)
Método públicoToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Método públicoVerifyAccessImpõe que o segmento de chamada tem acesso a este DispatcherObject. (Herdado de DispatcherObject.)
Superior
  NomeDescrição
Campo públicoMembro estáticoCustomVisualStateManagerPropertyIdentifica o CustomVisualStateManager propriedade de dependência.
Campo públicoMembro estáticoVisualStateGroupsPropertyIdentifica o VisualStateGroups propriedade de dependência.
Superior

O VisualStateManager permite que você especifique os estados para um controle, a aparência de um controle quando ele estiver em um determinado estado e quando um controle altera estados. Por exemplo, um Button pode ter uma aparência ligeiramente diferente quando é pressionado que quando não é pressionado. Dois afirma que o Button define correspondem às quando é pressionado ("Pressed") e quando não é ("Normal"). A aparência de um controle quando ele estiver em um estado é definida por um VisualState. A VisualState contém uma coleção de Storyboard objetos que especificam como a aparência do controle muda quando o controle estiver nesse estado. Adicionar estados visuais para um controle, definindo a VisualStateManager.VisualStateGroups anexado a propriedade no controle. Cada VisualStateGroup contém uma coleção de VisualState objetos que são mutuamente exclusivos. Ou seja, o controle é sempre exatamente um estado de em cada VisualStateGroup.

O VisualStateManager também permite que você especificar quando um controle entra em um estado específico. O método que você deve chamar para alterar os estados depende de seu cenário. Se você criar um controle que usa a VisualStateManager no seu ControlTemplate, chame o GoToState método. Para obter mais informações sobre como criar controlam que usam o VisualStateManager, consulte Criar um controle que tem uma aparência personalizável. Se você usar o VisualStateManager fora de um ControlTemplate (por exemplo, se você usar um VisualStateManager em um UserControl ou em um único elemento), chamar o GoToElementState método. Em ambos os casos, o VisualStateManager executa a lógica que é necessária para iniciar e parar os storyboards que estão associados com o estado envolvido de apropriadamente. Por exemplo, suponha que um controle define os estados, State1 e State2, cada um deles com um storyboard associado a ele. Se o controle está em State1 e passá- State2 para GoToState ou GoToElementState, o VisualStateManager inicia o storyboard em State2 e pára o storyboard na State1.

Controles que estão incluídos no Windows Presentation Foundation (WPF) usar o VisualStateManager para alterar os estados visuais. Quando você cria um ControlTemplate para um controle que está incluído no WPF, você pode adicionar VisualState objetos para o controle ControlTemplate para especificar a aparência do controle em um determinado estado. Para localizar os nomes dos Estados visual para os controles que estão incluídos no WPF, consulte Modelos e estilos de controle. Alças de lógica do controle fazendo a transição entre estados, portanto, você não precisará fazer tudo senão definem o VisualState objetos nos novos ControlTemplate. Para obter mais informações sobre como criar modelos de controle para controles existentes, consulte Personalizando a aparência de um controle existente, criando um ControlTemplate..

Se você quiser implementar sua própria lógica para fazer a transição entre estados, você deve herdar de VisualStateManager, substituir o GoToStateCore método e o conjunto do VisualStateManager.CustomVisualStateManager anexado a propriedade no controle que usa a lógica personalizada.

O exemplo a seguir cria um Rectangle e adiciona um VisualStateGroup chamado CommonStates para o VisualStateManager.VisualStatesGroups anexado a propriedade. The example defines the MouseOver and NormalVisualState objects in the CommonStatesVisualStateGroup. Quando o usuário move o ponteiro do mouse sobre o Rectangle, ela mudará de vermelho para verde sobre um meio segundo. Quando o usuário move o mouse para longe do retângulo, a Grid imediatamente alterações de volta para vermelho. Observe que o Normal estado não define um Storyboard. A Storyboard não é necessária porque quando o Rectangle faz a transição da MouseOver estado para o Normal estado, o Storyboard para MouseOver for interrompido e o Color propriedade para o SolidColorBrush retorna para vermelho.


<Rectangle Name="rect" 
           Width="100" Height="100"
           MouseEnter="rect_MouseEvent" 
           MouseLeave="rect_MouseEvent">
  <VisualStateManager.VisualStateGroups>
    <VisualStateGroup Name="MouseStates">
      <VisualState Name="MouseEnter">
        <Storyboard>
          <ColorAnimation To="Green" 
                          Storyboard.TargetName="rectBrush" 
                          Storyboard.TargetProperty="Color"/>
        </Storyboard>
      </VisualState>
      <VisualState Name="MouseLeave" />
      <VisualStateGroup.Transitions>
        <VisualTransition To="MouseLeave" GeneratedDuration="00:00:00"/>

        <VisualTransition To="MouseEnter" GeneratedDuration="00:00:00.5">
          <VisualTransition.GeneratedEasingFunction>
            <ExponentialEase EasingMode="EaseOut" Exponent="10"/>
          </VisualTransition.GeneratedEasingFunction>
        </VisualTransition>

      </VisualStateGroup.Transitions>
    </VisualStateGroup>
  </VisualStateManager.VisualStateGroups>

  <Rectangle.Fill>
    <SolidColorBrush x:Name="rectBrush" Color="Red"/>
  </Rectangle.Fill>
</Rectangle>


O exemplo a seguir mostra o manipulador de eventos é definido no exemplo anterior e chamadas de GoToElementState método para a transição entre estados. Se o retângulo no exemplo anterior fazia parte de um ControlTemplate, o exemplo teria que chamar o GoToState método.


private void rect_MouseEvent(object sender, MouseEventArgs e)
{
    if (rect.IsMouseOver)
    {
        VisualStateManager.GoToElementState(rect, "MouseEnter", true);
    }
    else
    {
        VisualStateManager.GoToElementState(rect, "MouseLeave", true);
    }
}


.NET Framework

Com suporte em: 4.5, 4

.NET Framework Client Profile

Com suporte em: 4

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.