Quiero ser capaz de establecer una propiedad con un EventTrigger, hay una serie de problemas con esto.Establecer una propiedad con un EventTrigger
1) EventTriggers solo admite acciones, por lo que debo usar un storyboard para establecer mis propiedades.
2) Una vez que utilizo un guión gráfico, tengo dos opciones:
- Stop: Una vez que la animación se ha detenido el valor vuelve a ser antes de la animación comenzó
- HoldEnd: Esto bloquea la propiedad, por lo que ni el código ni la interacción del usuario pueden cambiar la propiedad que está conteniendo la animación.
En el siguiente ejemplo, quiero establecer la propiedad IsChecked en False cuando se hace clic en el botón y quiero que el usuario sea capaz de cambiar el IsChecked y/o quiero ser capaz de cambiar la propiedad de código.
Ejemplo:
<EventTrigger
SourceName="myButton"
RoutedEvent="Button.Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames
Storyboard.TargetName="myCheckBox"
Storyboard.TargetProperty="IsChecked"
FillBehavior="Stop">
<DiscreteBooleanKeyFrame
KeyTime="00:00:00"
Value="False" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
Soy consciente de que puedo utilizar el evento "Completado" después del guión gráfico completa para establecer el valor False. Sin embargo, en este caso, quiero incluir la lógica dentro del XAML, ya que esta lógica se usará en un control personalizado y solo será específica para la UI.
TargetObject siempre es nula cuando el uso de ' ' –
huoxudong125
@Neutrino Tengo una pregunta sobre 'TargetedTriggerAction' https://stackoverflow.com/questions/40478172/why-the-targetedtriggeractions-targetobject-is-always-null – huoxudong125