Partilhar via


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 Button que contém um Grid. Ele também contém um VisualStateGroup chamado CommonStates, que define os MouseOver estados e Normal . O VisualStateGroup também tem um VisualTransition que especifica que leva meio segundo para que o Grid mude 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 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 é pressionado. Dois estados que o Button define correspondem a quando é pressionado ("Pressed") e quando não é ("Normal").

VisualState Adicione a um controle definindo a VisualStateManager.VisualStateGroups propriedade anexada no controle . Você coloca estados mutuamente exclusivos uns dos outros no mesmo VisualStateGroup. Por exemplo, o CheckBox tem dois VisualStateGroup objetos . Um contém os estados, Normal, MouseOver, Pressede 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 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 um TemplateVisualStateAttribute em sua definição de classe. Em seguida, qualquer pessoa que cria um novo ControlTemplate para o controle pode adicionar VisualState objetos ao modelo. O TemplateVisualStateAttribute permite que ferramentas de designer, como o Visual Studio e o Blend for 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 o controle faz a transição entre estados definidos no 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