Compartir vía


VisualStateGroup Clase

Definición

Contiene objetos y VisualTransition objetos mutuamente excluyentes VisualState que se usan para pasar de un estado a otro.

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
Herencia
Atributos

Ejemplos

En el ejemplo siguiente se crea un objeto simple ControlTemplate para un Button objeto que contiene uno Grid. También contiene un VisualStateGroup objeto denominado CommonStates, que define los MouseOver estados y Normal . VisualStateGroup También tiene un VisualTransition valor de tipo que especifica que tarda una mitad de segundo en Grid cambiar de verde a rojo cuando el usuario mueve el puntero del mouse sobre .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>

Comentarios

Cada VisualStateGroup contiene una colección de VisualState objetos . VisualState Contiene una colección de Storyboard objetos que especifican cómo cambia la apariencia del control cuando el control está en un estado determinado. Por ejemplo, Button un podría tener una apariencia ligeramente diferente cuando se presiona que cuando no se presiona. Dos estados a los que define Button corresponden cuando se presiona ("Pressed") y cuando no es ("Normal").

Para agregar VisualState a un control, establezca la VisualStateManager.VisualStateGroups propiedad adjunta en el control . Coloca estados que se excluyen mutuamente entre sí en el mismo VisualStateGroup. Por ejemplo, tiene CheckBox dos VisualStateGroup objetos. Uno contiene los estados , Normal, MouseOver, Pressedy Disabled. El otro contiene los estados , Checked, UnCheckedy Indeterminate. CheckBox puede estar en estados MouseOver y UnChecked al mismo tiempo, pero no puede estar en los MouseOver estados y Pressed al mismo tiempo.

Aunque puede agregar VisualState objetos a cualquier elemento, son una manera especialmente útil de permitir que otros usuarios vuelvan a definir el comportamiento visual de un Control. Si crea un control personalizado que usa un ControlTemplate, puede especificar en qué estados puede estar el control agregando una TemplateVisualStateAttribute en su definición de clase. A continuación, cualquier persona que cree un nuevo ControlTemplate para el control puede agregar VisualState objetos a la plantilla. Permite TemplateVisualStateAttribute que las herramientas del diseñador, como Visual Studio y Blend para Visual Studio, expongan los estados del control. Los estados con la misma TemplateVisualStateAttribute.GroupName propiedad pertenecen a la misma VisualStateGroup.

Para obtener más información sobre cómo usar VisualStateGroup objetos en , ControlTemplatevea Cómo crear una plantilla para un control. Para obtener más información sobre cómo crear controles que usan VisualStateManager, vea Crear un control que tenga una apariencia personalizable.

La Transitions propiedad contiene VisualTransition objetos que se aplican cuando el control pasa entre estados definidos en .VisualStateGroup

Constructores

Nombre Description
VisualStateGroup()

Inicializa una nueva instancia de la clase VisualStateGroup.

Propiedades

Nombre Description
CurrentState

Obtiene el VisualState objeto que se aplica actualmente al control .

DependencyObjectType

Obtiene el DependencyObjectType objeto que encapsula el tipo CLR de esta instancia.

(Heredado de DependencyObject)
Dispatcher

Obtiene el objeto al que DispatcherDispatcherObject está asociado.

(Heredado de DispatcherObject)
IsSealed

Obtiene un valor que indica si esta instancia está actualmente sellada (solo lectura).

(Heredado de DependencyObject)
Name

Obtiene o establece el nombre de .VisualStateGroup

States

Obtiene la colección de objetos mutuamente excluyentes VisualState .

Transitions

Obtiene la colección de VisualTransition objetos .

Métodos

Nombre Description
CheckAccess()

Determina si el subproceso que llama tiene acceso a este DispatcherObject.

(Heredado de DispatcherObject)
ClearValue(DependencyProperty)

Borra el valor local de una propiedad. Un identificador especifica DependencyProperty la propiedad que se va a borrar.

(Heredado de DependencyObject)
ClearValue(DependencyPropertyKey)

Borra el valor local de una propiedad de solo lectura. La propiedad que se va a borrar se especifica mediante .DependencyPropertyKey

(Heredado de DependencyObject)
CoerceValue(DependencyProperty)

Coerce el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier CoerceValueCallback función especificada en metadatos de propiedad para la propiedad de dependencia tal como existe en la llamada DependencyObjecta .

(Heredado de DependencyObject)
Equals(Object)

Determina si un proporcionado DependencyObject es equivalente al objeto actual DependencyObject.

(Heredado de DependencyObject)
GetHashCode()

Obtiene un código hash para este DependencyObjectobjeto .

(Heredado de DependencyObject)
GetLocalValueEnumerator()

Crea un enumerador especializado para determinar qué propiedades de dependencia tienen valores establecidos localmente en este DependencyObject.

(Heredado de DependencyObject)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de .DependencyObject

(Heredado de DependencyObject)
InvalidateProperty(DependencyProperty)

Vuelve a evaluar el valor efectivo de la propiedad de dependencia especificada.

(Heredado de DependencyObject)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Se invoca cada vez que se ha actualizado el valor efectivo de cualquier propiedad de dependencia en esto DependencyObject . La propiedad de dependencia específica que cambió se notifica en los datos del evento.

(Heredado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si existe.

(Heredado de DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Establece el valor de una propiedad de dependencia sin cambiar su origen de valor.

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia.

(Heredado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Establece el valor local de una propiedad de dependencia de solo lectura, especificada por el DependencyPropertyKey identificador de la propiedad de dependencia.

(Heredado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia proporcionada.

(Heredado de DependencyObject)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
VerifyAccess()

Exige que el subproceso de llamada tenga acceso a este DispatcherObject.

(Heredado de DispatcherObject)

Eventos

Nombre Description
CurrentStateChanged

Se produce después de que un control pase a un estado diferente.

CurrentStateChanging

Se produce cuando un control comienza a realizar la transición a un estado diferente.

Se aplica a