VisualStateGroup Clase

Definición

Contiene objetos VisualState mutuamente excluyentes y objetos VisualTransition que se utilizan para pasar de un estado a otro.Contains mutually exclusive VisualState objects and VisualTransition objects that are used to move from one state to another.

public ref class VisualStateGroup : System::Windows::DependencyObject
[System.Windows.Markup.ContentProperty("States")]
[System.Windows.Markup.RuntimeNameProperty("Name")]
public class VisualStateGroup : System.Windows.DependencyObject
type VisualStateGroup = class
    inherit DependencyObject
Public Class VisualStateGroup
Inherits DependencyObject
Herencia
Atributos

Ejemplos

En el ejemplo siguiente se crea ControlTemplate un sencillo Button para un que Gridcontiene uno.The following example creates a simple ControlTemplate for a Button that contains one Grid. También contiene un VisualStateGroup denominado CommonStates, que define los MouseOver Estados y Normal .It also contains a VisualStateGroup named CommonStates, which defines the MouseOver and Normal states. También tiene un VisualTransition que especifica que tardará Grid un segundo medio en cambiar de verde a rojo cuando el usuario mueva el puntero del mouse sobre el Button. VisualStateGroupThe VisualStateGroup also has a VisualTransition that specifies that it takes one half second for the Grid to change from green to red when the user moves the mouse pointer over the 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.Each VisualStateGroup contains a collection of VisualState objects. Un VisualState objeto contiene una colección Storyboard de objetos que especifican el modo en que cambia la apariencia del control cuando el control se encuentra en un estado determinado.A VisualState contains a collection of Storyboard objects that specify how the control's appearance changes when the control is in a certain state. Por ejemplo, un Button puede tener una apariencia ligeramente diferente cuando se presiona que cuando no se presiona.For example, a Button might have a slightly different appearance when it is pressed than when it is not pressed. Dos Estados que las Button definiciones de corresponden a cuando se presiona ("Pressed") y cuando no es ("Normal").Two states that the Button defines correspond to when it is pressed ("Pressed") and when it is not ("Normal").

Para agregar VisualState a un control, establezca la VisualStateManager.VisualStateGroups propiedad adjunta en el control.You add VisualState to a control by setting the VisualStateManager.VisualStateGroups attached property on the control. Los Estados se colocan mutuamente excluyentes entre sí en el VisualStateGroupmismo.You put states that are mutually exclusive to each other in the same VisualStateGroup. Por ejemplo, CheckBox tiene dos VisualStateGroup objetos.For example, the CheckBox has two VisualStateGroup objects. Uno contiene los Estados, Normal MouseOver Pressed,, y Disabled.One contains the states, Normal, MouseOver, Pressed, and Disabled. La otra contiene los Estados, Checked UnChecked, y Indeterminate.The other contains the states, Checked, UnChecked, and Indeterminate. MouseOver UnChecked MouseOver Puede estar en Estados y al mismo tiempo, pero no puede estar en los Estados y Pressed al mismo tiempo. CheckBoxThe CheckBox can be in states MouseOver and UnChecked at the same time, but it cannot be in the MouseOver and Pressed states at the same time.

Aunque puede agregar VisualState objetos a cualquier elemento, son una manera especialmente útil de permitir que otros usuarios vuelvan a definir el comportamiento visual Controlde un.Although you can add VisualState objects to any element, they are a particularly useful way to enable others to redefine the visual behavior of a Control. Si crea un control personalizado que usa ControlTemplate, puede especificar en qué Estados puede estar el control agregando un TemplateVisualStateAttribute en su definición de clase.If you create a custom control that uses a ControlTemplate, you can specify which states that control can be in by adding a TemplateVisualStateAttribute on its class definition. Después, cualquier persona que cree ControlTemplate un nuevo para el control VisualState puede agregar objetos a la plantilla.Then anyone who creates a new ControlTemplate for your control can add VisualState objects to the template. TemplateVisualStateAttribute Permite a las herramientas del diseñador, como Expression Blend, exponer los Estados del control.The TemplateVisualStateAttribute enables designer tools, such as Expression Blend, to expose the control's states. Los Estados que tienen TemplateVisualStateAttribute.GroupName el mismo pertenecen al VisualStateGroupmismo.States with the same TemplateVisualStateAttribute.GroupName belong in the same VisualStateGroup.

Para obtener más información sobre cómo usar VisualStateGroup objetos en un ControlTemplate, vea personalizar la apariencia de un control existente mediante la creación de una plantilla ControlTemplate.For more information about how to use VisualStateGroup objects in a ControlTemplate, see Customizing the Appearance of an Existing Control by Creating a ControlTemplate. Para obtener más información sobre cómo crear controles que usan VisualStateManager, vea crear un control que tenga una apariencia personalizable.For more information about how to create controls that use the VisualStateManager, see Creating a Control That Has a Customizable Appearance.

La Transitions propiedad contiene VisualTransition objetos que se aplican cuando el control realiza la transición entre Estados definidos en VisualStateGroup.The Transitions property contains VisualTransition objects that are applied when the control transition between states that are defined in the VisualStateGroup.

Constructores

VisualStateGroup()

Inicializa una nueva instancia de la clase VisualStateGroup.Initializes a new instance of the VisualStateGroup class.

Propiedades

CurrentState

Obtiene el VisualState que se aplica actualmente al control.Gets the VisualState that is currently applied to the control.

DependencyObjectType

Obtiene el objeto DependencyObjectType que ajusta el tipo CLRCLR de esta instancia.Gets the DependencyObjectType that wraps the CLRCLR type of this instance.

(Heredado de DependencyObject)
Dispatcher

Obtiene el objeto Dispatcher al que está asociado DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Heredado de DispatcherObject)
IsSealed

Obtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura).Gets a value that indicates whether this instance is currently sealed (read-only).

(Heredado de DependencyObject)
Name

Obtiene o establece el nombre de VisualStateGroup.Gets or sets the name of the VisualStateGroup.

States

Obtiene la colección de objetos VisualState que se excluyen mutuamente.Gets the collection of mutually exclusive VisualState objects.

Transitions

Obtiene la colección de objetos VisualTransition.Gets the collection of VisualTransition objects.

Métodos

CheckAccess()

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Heredado de DispatcherObject)
ClearValue(DependencyProperty)

Borra el valor local de una propiedad.Clears the local value of a property. La propiedad que se va a borrar se especifica mediante un identificador DependencyProperty.The property to be cleared is specified by a DependencyProperty identifier.

(Heredado de DependencyObject)
ClearValue(DependencyPropertyKey)

Borra el valor local de una propiedad de solo lectura.Clears the local value of a read-only property. La propiedad que se va a borrar se especifica mediante un DependencyPropertyKey.The property to be cleared is specified by a DependencyPropertyKey.

(Heredado de DependencyObject)
CoerceValue(DependencyProperty)

Convierte el valor de la propiedad de dependencia especificada.Coerces the value of the specified dependency property. 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.This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(Heredado de DependencyObject)
Equals(Object)

Determina si un objeto DependencyObject proporcionado es equivalente al objeto DependencyObject actual.Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(Heredado de DependencyObject)
GetHashCode()

Obtiene un código hash de este objeto DependencyObject.Gets a hash code for this DependencyObject.

(Heredado de DependencyObject)
GetLocalValueEnumerator()

Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject.Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(Heredado de DependencyObject)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de un DependencyObject.Returns the current effective value of a dependency property on this instance of a DependencyObject.

(Heredado de DependencyObject)
InvalidateProperty(DependencyProperty)

Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada.Re-evaluates the effective value for the specified dependency property.

(Heredado de DependencyObject)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Se invoca cuando se actualiza el valor efectivo de alguna propiedad de dependencia en este DependencyObject.Invoked whenever the effective value of any dependency property on this DependencyObject has been updated. La propiedad de dependencia específica que cambió se notifica en los datos de evento.The specific dependency property that changed is reported in the event data.

(Heredado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si existe.Returns the local value of a dependency property, if it exists.

(Heredado de DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Establece el valor de una propiedad de dependencia sin cambiar el origen del valor.Sets the value of a dependency property without changing its value source.

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia, especificado mediante el identificador de la propiedad de dependencia.Sets the local value of a dependency property, specified by its dependency property identifier.

(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.Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(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.Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(Heredado de DependencyObject)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
VerifyAccess()

Exige que el subproceso de la llamada tenga acceso a DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Heredado de DispatcherObject)

Eventos

CurrentStateChanged

Se produce después de que un control pase a un estado diferente.Occurs after a control transitions to a different state.

CurrentStateChanging

Se produce cuando un control comienza a pasar a un estado diferente.Occurs when a control starts transitioning to a different state.

Se aplica a