2010-05-09 7 views
11

Trabajando en una aplicación WPF, comencé a trabajar en una personalizada ControlTemplate. Llegué al punto en el que necesito cambiar algunas propiedades de control cuando ocurre un evento.¿Hay alguna manera de colocar elementos Setter dentro de EventTrigger?

Para este propósito, hay elementos Setter. Parece todo bien, pero no puedo usarlos dentro de EventTrigger elementos. Por ejemplo, si se usa un simple Trigger, que puede vincularse a las propiedades de control, entonces Setter elementos pueden usarse dentro. Sin embargo, no quiero vincularme a un cambio de propiedad sino a un evento.

¿Hay alguna manera de hacer esto en XAML puro o tendré que trabajar en el código subyacente?

Respuesta

6

Puede poner allí un StoryBoard y hacer que inicie un ObjectAnimationUsingKeyFrames que "animará" sus propiedades instantáneamente al estado deseado. Si sus propiedades son double o Color - aún mejor: podrá hacerlas transición suavemente usando DoubleAnimation o ColorAnimation respectivamente.

Creo que esto es un poco exagerado, pero si quieres usar XAML puro, esto es posible.

+0

Eso es exactamente lo que estaba buscando. Con pequeñas modificaciones, pude cambiar la propiedad en función del evento desencadenado. Simplemente configure la duración de la animación en 0 y KeyTime en 0 para DiscreteObjectKeyFrame que estaba dentro de ObjectAnimationUsingKeyFrames. –

Cuestiones relacionadas