Compartir vía


VisualStateGroup Clase

Definición

Contiene objetos VisualState mutuamente excluyentes y objetos VisualTransition que se utilizan 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, un Button podría tener una apariencia ligeramente diferente cuando se presiona que cuando no se presiona. Dos estados a los Button que define 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. TemplateVisualStateAttribute Permite que las herramientas del diseñador, como Visual Studio y Blend para Visual Studio, expongan los estados del control. Los estados con el mismo TemplateVisualStateAttribute.GroupName pertenecen a la misma VisualStateGroup.

Para obtener más información sobre cómo usar VisualStateGroup objetos en , ControlTemplatevea Personalización de la apariencia de un control existente mediante la creación de un controlTemplate. 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 la transición del control entre estados definidos en .VisualStateGroup

Constructores

VisualStateGroup()

Inicializa una nueva instancia de la clase VisualStateGroup.

Propiedades

CurrentState

Obtiene el VisualState 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 Dispatcher al que está asociado DispatcherObject.

(Heredado de DispatcherObject)
IsSealed

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

(Heredado de DependencyObject)
Name

Obtiene o establece el nombre de VisualStateGroup.

States

Obtiene la colección de objetos VisualState que se excluyen mutuamente.

Transitions

Obtiene la colección de objetos VisualTransition.

Métodos

CheckAccess()

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.

(Heredado de DispatcherObject)
ClearValue(DependencyProperty)

Borra el valor local de una propiedad. La propiedad que se va a borrar se especifica mediante un identificador DependencyProperty.

(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 un DependencyPropertyKey.

(Heredado de DependencyObject)
CoerceValue(DependencyProperty)

Convierte el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier función CoerceValueCallback especificada en los metadatos de la propiedad de dependencia tal como existe en la clase DependencyObject que llama.

(Heredado de DependencyObject)
Equals(Object)

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

(Heredado de DependencyObject)
GetHashCode()

Obtiene un código hash de este objeto DependencyObject.

(Heredado de DependencyObject)
GetLocalValueEnumerator()

Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en 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 un DependencyObject.

(Heredado de DependencyObject)
InvalidateProperty(DependencyProperty)

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

(Heredado de DependencyObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Se invoca cuando se actualiza el valor efectivo de alguna propiedad de dependencia en este DependencyObject. La propiedad de dependencia específica que cambió se notifica en los datos de 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 el origen del valor.

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia, especificado mediante el identificador de la propiedad de dependencia.

(Heredado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Establece el valor local de una propiedad de dependencia de solo lectura, especificado por el identificador DependencyPropertyKey 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 especificada.

(Heredado de DependencyObject)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
VerifyAccess()

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

(Heredado de DispatcherObject)

Eventos

CurrentStateChanged

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

CurrentStateChanging

Se produce cuando un control comienza a pasar a un estado diferente.

Se aplica a