VisualStateGroup Classe

Definição

Contém objetos VisualState mutuamente exclusivos e objetos VisualTransition que são usados para mover de um estado para outro.

public ref class VisualStateGroup : System::Windows::DependencyObject
[System.Windows.Markup.ContentProperty("States")]
[System.Windows.Markup.RuntimeNameProperty("Name")]
public class VisualStateGroup : System.Windows.DependencyObject
[<System.Windows.Markup.ContentProperty("States")>]
[<System.Windows.Markup.RuntimeNameProperty("Name")>]
type VisualStateGroup = class
    inherit DependencyObject
Public Class VisualStateGroup
Inherits DependencyObject
Herança
Atributos

Exemplos

O exemplo a seguir cria um simples ControlTemplate para um que contém um Button Grid. Ele também contém um VisualStateGroup nomeCommonStates, que define o e Normal os MouseOver estados. O VisualStateGroup também tem um VisualTransition que especifica que leva meio segundo para a Grid alteração de verde para vermelho quando o usuário move o ponteiro do mouse sobre o Button.

<ControlTemplate TargetType="Button">
  <Grid >
    <VisualStateManager.VisualStateGroups>
      <VisualStateGroup x:Name="CommonStates">

        <VisualStateGroup.Transitions>

          <!--Take one half second to trasition to the MouseOver state.-->
          <VisualTransition To="MouseOver" 
            GeneratedDuration="0:0:0.5"/>
        </VisualStateGroup.Transitions>

        <VisualState x:Name="Normal" />

        <!--Change the SolidColorBrush, ButtonBrush, to red when the
            mouse is over the button.-->
        <VisualState x:Name="MouseOver">
          <Storyboard>
            <ColorAnimation Storyboard.TargetName="ButtonBrush" 
              Storyboard.TargetProperty="Color" To="Red" />
          </Storyboard>
        </VisualState>
      </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <Grid.Background>
      <SolidColorBrush x:Name="ButtonBrush" Color="Green"/>
    </Grid.Background>
  </Grid>
</ControlTemplate>

Comentários

Cada VisualStateGroup um contém uma coleção de VisualState objetos. Um VisualState contém uma coleção de Storyboard objetos que especificam como a aparência do controle é alterada quando o controle está em um determinado estado. Por exemplo, um Button pode ter uma aparência um pouco diferente quando é pressionado do que quando não está pressionado. Dois estados aos quais as Button definições correspondem quando ela é pressionada ("Pressed") e quando não é ("Normal").

Você adiciona VisualState a um controle definindo a VisualStateManager.VisualStateGroups propriedade anexada no controle. Você coloca estados mutuamente exclusivos uns dos outros na mesma VisualStateGroup. Por exemplo, o CheckBox tem dois VisualStateGroup objetos. Um contém os estados, Normal, MouseOvere Pressed``Disabled. O outro contém os estados, Checked``UnCheckede Indeterminate. O CheckBox pode estar em estados MouseOver e UnChecked ao mesmo tempo, mas não pode estar nos MouseOver estados e Pressed nos estados ao mesmo tempo.

Embora você possa adicionar VisualState objetos a qualquer elemento, eles são uma maneira particularmente útil de permitir que outras pessoas redefinam o comportamento visual de um Control. Se você criar um controle personalizado que usa um ControlTemplate, poderá especificar em quais estados esse controle pode estar adicionando uma TemplateVisualStateAttribute definição de classe. Em seguida, qualquer pessoa que cria um novo ControlTemplate para seu controle pode adicionar VisualState objetos ao modelo. Permite TemplateVisualStateAttribute que ferramentas de designer, como Visual Studio e Blend para Visual Studio, exponham os estados do controle. Os estados com o mesmo TemplateVisualStateAttribute.GroupName pertencem ao mesmo VisualStateGroup.

Para obter mais informações sobre como usar VisualStateGroup objetos em um ControlTemplate, consulte Personalizando a aparência de um controle existente criando um ControlTemplate. Para obter mais informações sobre como criar controles que usam o VisualStateManager, consulte Criando um controle que tem uma aparência personalizável.

A Transitions propriedade contém VisualTransition objetos que são aplicados quando a transição de controle entre estados definidos na VisualStateGroup.

Construtores

VisualStateGroup()

Inicializa uma nova instância da classe VisualStateGroup.

Propriedades

CurrentState

Obtém o VisualState que é aplicado atualmente ao controle.

DependencyObjectType

Obtém o DependencyObjectType que encapsula o tipo CLR dessa instância.

(Herdado de DependencyObject)
Dispatcher

Obtém o Dispatcher ao qual este DispatcherObject está associado.

(Herdado de DispatcherObject)
IsSealed

Obtém um valor que indica se essa instância está validada no momento (somente leitura).

(Herdado de DependencyObject)
Name

Obtém ou define o nome de VisualStateGroup.

States

Obtém a coleção de objetos VisualState mutuamente exclusivos.

Transitions

Obtém a coleção de objetos VisualTransition.

Métodos

CheckAccess()

Determina se o thread de chamada tem acesso a este DispatcherObject.

(Herdado de DispatcherObject)
ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um identificador DependencyProperty.

(Herdado de DependencyObject)
ClearValue(DependencyPropertyKey)

Limpa o valor local de uma propriedade somente leitura. A propriedade a ser limpa é especificada por um DependencyPropertyKey.

(Herdado de DependencyObject)
CoerceValue(DependencyProperty)

Converte o valor da propriedade de dependência especificada. Isso é feito invocando qualquer função CoerceValueCallback especificada nos metadados de propriedade para a propriedade de dependência, visto que ela existe na chamada a DependencyObject.

(Herdado de DependencyObject)
Equals(Object)

Determina se um DependencyObject fornecido é equivalente ao DependencyObject atual.

(Herdado de DependencyObject)
GetHashCode()

Obtém o código hash para esse DependencyObject.

(Herdado de DependencyObject)
GetLocalValueEnumerator()

Cria um enumerador especializado para determinar quais propriedades de dependência têm valores definidos localmente nessa DependencyObject.

(Herdado de DependencyObject)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência nessa instância de um DependencyObject.

(Herdado de DependencyObject)
InvalidateProperty(DependencyProperty)

Reavalia o valor efetivo para a propriedade de dependência especificada.

(Herdado de DependencyObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Invocado sempre que o valor efetivo de qualquer propriedade de dependência nesse DependencyObject for atualizado. A propriedade de dependência específica que mudou é relatada os dados do evento.

(Herdado de DependencyObject)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, local, se houver.

(Herdado de DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Define o valor da propriedade de dependência sem alterar a origem do valor.

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência, especificada pelo identificador da propriedade de dependência.

(Herdado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Define o valor de uma propriedade de dependência somente leitura, especificada pelo identificador DependencyPropertyKey da propriedade de dependência.

(Herdado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Retorna um valor que indica se os processos de serialização devem serializar o valor da propriedade de dependência fornecida.

(Herdado de DependencyObject)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
VerifyAccess()

Impõe que o thread de chamada tenha acesso a este DispatcherObject.

(Herdado de DispatcherObject)

Eventos

CurrentStateChanged

Ocorre depois que um controle faz a transição para um estado diferente.

CurrentStateChanging

Ocorre quando um controle começa a fazer a transição para um estado diferente.

Aplica-se a