2010-01-14 10 views
13

¿Cómo obtengo programáticamente el estado visual actual de un WPF FrameworkElement? Y por el estado me refiero a los estados como "Normal", "al mover el ratón", "desactivada", etc.¿Cómo obtengo programáticamente el estado visual actual de un FrameworkElement de WPF?

EDIT: Básicamente, estoy cambiando el Visual estado de un botón con VisualStateManager.GoToState(e, "MouseOver", true);, y yo quiero saber en qué estado para volver a cambiarlo después de que haya terminado.

Respuesta

2

Creo que tienes que saber/recordar el estado del botón por ti mismo. VSM solo muestra el estado en el que está el botón por el método GoToState.

Edité: Acabo de encontrar un artículo sobre cómo crear un custom VSM que recuerde estados de control.

+2

Tu enlace está podrido. – JohnFx

0

Creo que debería usar el método GoToElementState en lugar del método GoToState.

VisualStateManager.GoToElementState(LayoutRoot, "Add", true); 
+0

Extraño, yo ni siquiera veo este método. Por supuesto, estoy usando VisualStateManager del kit de herramientas de WPF para .NET 3.5, por lo que puede ser diferente del que está incorporado en .NET 4.0 o Silverlight. – jpierson

0

Creo que se ha perdido el punto de vista de WPF aquí, es la Vista no el Modelo. No debería estar almacenando estado en la Vista. Almacene el estado en su (s) Modelo (s) y use la Vista para representarlo. Sobre esa base, no es necesario que lea el estado de la Vista, ya la conoce.

Sé que esto puede parecer mucho trabajo en este momento, pero le devolverá el dinero en grandes cantidades más adelante.

Cuestiones relacionadas