Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

VisualStateGroup (Clase)

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

Espacio de nombres:  System.Windows
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[RuntimeNamePropertyAttribute("Name")]
[ContentPropertyAttribute("States")]
public class VisualStateGroup : DependencyObject
<VisualStateGroup>
  States
</VisualStateGroup>

El tipo VisualStateGroup expone los siguientes miembros.

  NombreDescripción
Método públicoVisualStateGroupInicializa una nueva instancia de la clase VisualStateGroup.
Arriba

  NombreDescripción
Propiedad públicaCurrentStateObtiene el VisualState que se aplica actualmente al control.
Propiedad públicaDependencyObjectTypeObtiene el objeto DependencyObjectType que ajusta el tipo CLR de esta instancia.  (Se hereda de DependencyObject).
Propiedad públicaDispatcherObtiene el objeto Dispatcher al que está asociado DispatcherObject. (Se hereda de DispatcherObject).
Propiedad públicaIsSealedObtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura). (Se hereda de DependencyObject).
Propiedad públicaNameObtiene o establece el nombre del objeto VisualStateGroup.
Propiedad públicaStatesObtiene la colección de objetos VisualState mutuamente excluyentes.
Propiedad públicaTransitionsObtiene la colección de objetos VisualTransition.
Arriba

  NombreDescripción
Método públicoCheckAccess Determina si el subproceso de la llamada tiene acceso a este DispatcherObject. (Se hereda de DispatcherObject).
Método públicoClearValue(DependencyProperty) Borra el valor local de una propiedad. La propiedad que se borrará se especifica mediante un identificador de DependencyProperty. (Se hereda de DependencyObject).
Método públicoClearValue(DependencyPropertyKey) Borra el valor local de una propiedad de sólo lectura. La propiedad que se borrará es especificada por DependencyPropertyKey. (Se hereda de DependencyObject).
Método públicoCoerceValue Fuerza el valor de propiedad de la dependencia especificada. Esto se logra a cualquier función de CoerceValueCallback especificada en los metadatos de propiedad para la propiedad de dependencia tal como existe en el objeto DependencyObject que llama. (Se hereda de DependencyObject).
Método públicoEquals Determina si un DependencyObject proporcionado es equivalente a DependencyObject actual. (Se hereda de DependencyObject).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Se hereda de Object).
Método públicoGetHashCode Obtiene un código hash para este DependencyObject. (Se hereda de DependencyObject).
Método públicoGetLocalValueEnumeratorCrea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject. (Se hereda de DependencyObject).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoGetValue Devuelve el valor efectivo actual de propiedad de dependencia en esta instancia de DependencyObject. (Se hereda de DependencyObject).
Método públicoInvalidatePropertyVuelve a evaluar el valor efectivo para la propiedad de dependencia especificada. (Se hereda de DependencyObject).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método protegidoOnPropertyChanged Invocado siempre que el valor efectivo de cualquier propiedad de dependencia en este DependencyObject se haya actualizado. Se informa de la propiedad de dependencia concreta que cambió en los datos de evento. (Se hereda de DependencyObject).
Método públicoReadLocalValue Devuelve el valor local de propiedad de dependencia, si existe. (Se hereda de DependencyObject).
Método públicoSetCurrentValueEstablece el valor de una propiedad de dependencia sin cambiar el origen de su valor. (Se hereda de DependencyObject).
Método públicoSetValue(DependencyProperty, Object)Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia. (Se hereda de DependencyObject).
Método públicoSetValue(DependencyPropertyKey, Object)Establece el valor local de una propiedad de dependencia de sólo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia. (Se hereda de DependencyObject).
Método protegidoShouldSerializePropertyDevuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia proporcionada. (Se hereda de DependencyObject).
Método públicoToString Devuelve una cadena que representa al objeto actual. (Se hereda de Object).
Método públicoVerifyAccessExige que el subproceso de la llamada tenga acceso a DispatcherObject. (Se hereda de DispatcherObject).
Arriba

  NombreDescripción
Evento públicoCurrentStateChangedSe produce después de que un control pase a un estado diferente.
Evento públicoCurrentStateChangingSe produce cuando un control comienza a pasar a un estado diferente.
Arriba

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

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

Aunque puede agregar objetos VisualState a cualquier elemento, son una manera particularmente útil de permitir que otros 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 ese control agregando TemplateVisualStateAttribute en su definición de clase. A continuación, cualquiera que cree un nuevo ControlTemplate para su control puede agregar objetos VisualState a la plantilla. TemplateVisualStateAttribute permite que las herramientas de diseñador, tales como Expression Blend, expongan los estados del control. Los estados con la misma propiedad TemplateVisualStateAttribute.GroupName pertenecen al mismo VisualStateGroup.

Para obtener más información acerca de cómo usar objetos VisualStateGroup en ControlTemplate, vea Personalizar la apariencia de un control existente creando una clase ControlTemplate. Para obtener más información sobre cómo crear controles que usan VisualStateManager, vea Crear un control que tiene una apariencia personalizable.

La propiedad Transitions contiene objetos VisualTransition que se aplican cuando el control realiza la transición entre estados que se definen en VisualStateGroup.

En el siguiente ejemplo se crea una plantilla ControlTemplate sencilla para un control Button que contiene un control Grid. También contiene un grupo VisualStateGroup con nombre CommonStates, que define los estados MouseOver y Normal. VisualStateGroup también tiene un objeto VisualTransition que especifica que el control Grid tarda medio segundo en cambiar de color 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>


.NET Framework

Compatible con: 4

.NET Framework Client Profile

Compatible con: 4

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Mostrar: