Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

VisualStateManager (Clase)

Administra los estados y la lógica para la transición de un estado a otro de los controles.

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

'Declaración
Public Class VisualStateManager _
	Inherits DependencyObject
<VisualStateManager .../>

El tipo VisualStateManager expone los siguientes miembros.

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

  NombreDescripción
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).
Arriba

  NombreDescripción
Propiedad pública asociadaCustomVisualStateManagerObtiene o establece el objeto VisualStateManager que realiza la transición entre los estados de un control.
Propiedad pública asociadaVisualStateGroupsObtiene o establece una colección de objetos VisualStateGroup.
Arriba

  NombreDescripción
Método públicoCheckAccessDetermina si el subproceso de la llamada tiene acceso a DispatcherObject. (Se hereda de DispatcherObject).
Método públicoClearValue(DependencyProperty)Borra el valor local de una propiedad. La propiedad que se va a 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. DependencyPropertyKey especifica la propiedad que se va a borrar. (Se hereda de DependencyObject).
Método públicoCoerceValueConvierte el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier función de CoerceValueCallback especificada en los metadatos de la propiedad de dependencia cuando existe en el objeto DependencyObject de llamada. (Se hereda de DependencyObject).
Método públicoEqualsDetermina si un objeto DependencyObject proporcionado es equivalente al objeto 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 la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoMiembro estáticoGetCustomVisualStateManagerObtiene la propiedad adjunta CustomVisualStateManager.
Método públicoGetHashCodeObtiene un código hash de este objeto 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úblicoGetValueDevuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de DependencyObject. (Se hereda de DependencyObject).
Método públicoMiembro estáticoGetVisualStateGroupsObtiene la propiedad adjunta VisualStateManager.VisualStateGroups.
Método públicoMiembro estáticoGoToElementStateRealiza la transición del elemento entre dos estados. Utilice este método para la transición de estados definidos por una aplicación, en lugar de definidos por un control.
Método públicoMiembro estáticoGoToStateRealiza la transición del control entre dos estados. Use este método para pasar de un estado a otro los controles que tengan ControlTemplate.
Método protegidoGoToStateCoreRealiza la transición de un control entre estados.
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 protegidoOnPropertyChangedSe invoca cada vez que se actualiza el valor actual de cualquier propiedad de dependencia en DependencyObject. Se informa de la propiedad de dependencia concreta que cambió en los datos de evento. (Se hereda de DependencyObject).
Método protegidoRaiseCurrentStateChangedGenera el evento CurrentStateChanging en el objeto VisualStateGroup especificado.
Método protegidoRaiseCurrentStateChangingGenera el evento CurrentStateChanging en el objeto VisualStateGroup especificado.
Método públicoReadLocalValueDevuelve el valor local de una 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úblicoMiembro estáticoSetCustomVisualStateManagerEstablece la propiedad adjunta CustomVisualStateManager.
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 Retorna 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
Campo públicoMiembro estáticoCustomVisualStateManagerPropertyIdentifica la propiedad de dependencia CustomVisualStateManager.
Campo públicoMiembro estáticoVisualStateGroupsPropertyIdentifica la propiedad de dependencia VisualStateGroups.
Arriba

VisualStateManager le permite especificar los estados de un control, el aspecto de un control cuando está en un cierto estado, y cuándo un control cambia de 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"). El aspecto de un control cuando está en un estado se define mediante un VisualState. Un objeto VisualState contiene una colección de objetos Storyboard que especifican cómo cambia el aspecto del control cuando este está en ese estado. Agregue estados visuales a un control VisualStateManager.VisualStateGroups estableciendo la propiedad adjunta en el control. Cada VisualStateGroup contiene una colección de objetos VisualState que se excluyen mutuamente. Es decir, el control siempre está exactamente en un estado en cada VisualStateGroup.

VisualStateManager también le permite especificar cuándo un control entra en un estado concreto. El método que debería llamar para cambiar el estado depende de su escenario. Si crea un control que utiliza VisualStateManager en su ControlTemplate, llame al método GoToState. Para obtener más información sobre cómo crear controles que usan VisualStateManager, vea Crear un control que tiene una apariencia personalizable. Si utiliza VisualStateManager fuera de un VisualStateManager (por ejemplo, si utiliza un UserControl en un ControlTemplate o en un elemento único), llame al método GoToElementState. En cualquier caso, el VisualStateManager realiza la lógica necesaria para iniciar y detener apropiadamente los guiones gráficos asociados al estado relacionado. Por ejemplo, suponga que un control define los estados State1 y State2, cada uno de los cuales tiene un guión gráfico asociado. Si el control está en State1 y pasa State2 a GoToState o GoToElementState, VisualStateManager inicia el guión gráfico en State2 y detiene el guión gráfico en State1.

Los controles que se incluyen con Windows Presentation Foundation (WPF) utilizan VisualStateManager para cambiar los estados visuales. Al crear ControlTemplate para un control que se incluye con WPF, puede agregar los objetos VisualState al control ControlTemplate para especificar el aspecto del control en un estado determinado. Para encontrar los nombres de los estados visuales para los controles que se incluyen con WPF, vea Estilos y plantillas de Control. La lógica de control administra la transición entre estados, de modo que no es necesario hacer nada más que definir los objetos VisualState en el nuevo ControlTemplate. Para obtener más información sobre cómo crear plantillas de control para los controles existentes, vea Personalizar la apariencia de un control existente creando una clase ControlTemplate.

Si desea implementar su propia lógica para realizar la transición entre los estados, debe heredar de VisualStateManager, invalidar el método GoToStateCore y establecer la propiedad adjunta VisualStateManager.CustomVisualStateManager en el control que utiliza la lógica personalizada.

El siguiente ejemplo crea un Rectangle y agrega un VisualStateGroup, denominado CommonStates a la propiedad VisualStateManager.VisualStatesGroups adjunta. En el ejemplo se definen los objetos MouseOver y NormalVisualState en CommonStatesVisualStateGroup. Cuando el usuario mueve el puntero del mouse sobre Rectangle, cambia de rojo a verde durante medio segundo. Cuando el usuario mueve el mouse fuera del rectángulo, Grid vuelve a cambiar inmediatamente a rojo. Observe que el estado Normal no define un Storyboard. Un objeto Storyboard no es necesario porque cuando el objeto Rectangle cambia del estado MouseOver al estado Normal, el objeto Storyboard de MouseOver se detiene y la propiedad Color de SolidColorBrush vuelve al color rojo.


<Rectangle Name="rect" 
           Width="100" Height="100"
           MouseEnter="rect_MouseEvent" 
           MouseLeave="rect_MouseEvent">
  <VisualStateManager.VisualStateGroups>
    <VisualStateGroup Name="MouseStates">
      <VisualState Name="MouseEnter">
        <Storyboard>
          <ColorAnimation To="Green" 
                          Storyboard.TargetName="rectBrush" 
                          Storyboard.TargetProperty="Color"/>
        </Storyboard>
      </VisualState>
      <VisualState Name="MouseLeave" />
      <VisualStateGroup.Transitions>
        <VisualTransition To="MouseLeave" GeneratedDuration="00:00:00"/>

        <VisualTransition To="MouseEnter" GeneratedDuration="00:00:00.5">
          <VisualTransition.GeneratedEasingFunction>
            <ExponentialEase EasingMode="EaseOut" Exponent="10"/>
          </VisualTransition.GeneratedEasingFunction>
        </VisualTransition>

      </VisualStateGroup.Transitions>
    </VisualStateGroup>
  </VisualStateManager.VisualStateGroups>

  <Rectangle.Fill>
    <SolidColorBrush x:Name="rectBrush" Color="Red"/>
  </Rectangle.Fill>
</Rectangle>


En el siguiente ejemplo se muestra el controlador de eventos que se define en el ejemplo anterior y llama al método GoToElementState para cambiar de estado. Si el rectángulo del ejemplo anterior formara parte de un ControlTemplate, el ejemplo tendría que llamar al método GoToState.


Private Sub rect_MouseEvent(ByVal sender As Object, ByVal e As MouseEventArgs)
    If rect.IsMouseOver Then
        VisualStateManager.GoToElementState(rect, "MouseEnter", True)
    Else
        VisualStateManager.GoToElementState(rect, "MouseLeave", True)
    End If
End Sub


.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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft