Чтобы сделать это полностью в XAML, вам нужно использовать EventTrigger, но помните:
- EventTrigger может использоваться только с RoutedEvent
Если целью является отключение привязки, вы можете использовать перенаправленное событие Binding.TargetUpdated. Чтобы это событие было вызвано, вы должны добавить NotifyOnTargetUpdated = True к своему выражению привязки. Теперь при каждом обновлении цели выражения привязки будет воспроизводиться указанная анимация.
<TextBox Text={Binding ... NotifyOnTargetUpdated=True}>
<TextBox.Triggers>
<EventTrigger RoutedEvent="Binding.TargetUpdated">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard AutoReverse="True" BeginTime="0:0:0" Duration="0:0:0.5">
<ColorAnimation
Storyboard.TargetProperty="(TextBox.Background).(SolidColorBrush.Color)"
From="White"
To="Lavender"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</TextBox.Triggers>
</TextBox>
Кроме того, вы можете уточнить, как и когда запускаются анимации, указав конкретные события независимо от примененных привязок. Например, чтобы запускать анимацию только при изменении свойства Text, используйте вместо этого событие TextBox.TextChanged.