Я пишу приложение wpf и хочу использовать некоторые анимации, используя MultiDataTrigger.Вот мой код xaml
<Border
Grid.Column="0"
Background="Transparent"
MouseLeftButtonUp="brdLeft_MouseLeftButtonUp">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="{StaticResource myFont}"
FontSize="32"
Foreground="White"
Text="aaaaa">
<TextBlock.Style>
<Style>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding LeftActivity}" Value="True"/>
<Condition Binding="{Binding LeftValue}" Value="1"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Foreground.Color"
To="Firebrick"
Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding LeftActivity}" Value="False"/>
<Condition Binding="{Binding LeftValue}" Value="2"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Foreground.Color"
To="Gray"
Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding LeftValue}" Value="0"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Foreground.Color"
To="White"
Duration="0:0:0.2" />
</Storyboard>
</BeginStoryboard>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Border>
Проблема в том, что когда LeftValue достигает правильного значения, запускается только «белая» анимация.Другие никогда не срабатывают.Вот фрагмент моего класса модели представления:
private int _leftValue = 3;
private bool _leftActivity = false;
public int LeftValue
{
get => _leftValue;
set
{
_leftValue = value;
NotifyPropertyChanged();
}
}
public bool LeftActivity
{
get => _leftActivity;
set
{
_leftActivity = value;
NotifyPropertyChanged();
}
}
Фрагмент кода, который отвечает за триггер:
LeftActivity = activity;
if (activity)
LeftValue = 1;
else
LeftValue = 2;
Программа входит в эту область, я проверил ееиспользование отладчика, поэтому пропустить эту часть кода здесь не проблема.Также «белая анимация» никогда не запускается, когда другая должна, чтобы программа не покрывала эффекты этих анимаций.Спасибо за любую помощь