VisualStateGroup Classe
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.
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
, Pressed
e Disabled
. O outro contém os estados, Checked
, UnChecked
e 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. |