1
Я хочу показать некоторую анимацию кнопки, перед нажатием кнопки события. Я использую следующий XAML, чтобы достичь этого, но похоже, что триггер запускается после события click. Button.IsPressed
.Проблема с анимацией WPF при нажатии кнопки
Как установить триггер, чтобы он отображал анимацию сначала перед событием клика?
<Button x:Name="button"
Width="131"
Height="37"
Content="Button"
Margin="0,0,0,22"
Click="button_Click">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="Button.IsPressed" Value="True">
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Width"
From="130"
To="0"
Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
EDIT: Я попытался это, но то же самое.
<EventTrigger RoutedEvent="PreviewMouseLeftButtonDown">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Width"
From="130"
To="0"
Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
Это кнопка DataGrid, который в основном удалить столбец. поэтому, прежде чем он будет удален, я хочу показать некоторую анимацию (изменить ширину кнопки от 130 до 0), а затем удалить весь столбец. Анимация прекрасна, только я должен позвонить, прежде чем она перейдет к коду, чтобы удалить фактический столбец –
Pls см. Обновленный контент (Edit) –
Это звучит как состояние гонки. Было бы лучше начать анимацию в коде и приостановить выполнение до завершения раскадровки. Если вы этого не сделаете, скорее всего, строка будет удалена до того, как анимация закончится. Я не знаю о правильном событии/переопределении для этой цели, но вы можете попробовать OnExecutedDelete –