Как запустить мульти-условную анимацию в wpf? - PullRequest
0 голосов
/ 25 сентября 2019

Я пишу приложение 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;

Программа входит в эту область, я проверил ееиспользование отладчика, поэтому пропустить эту часть кода здесь не проблема.Также «белая анимация» никогда не запускается, когда другая должна, чтобы программа не покрывала эффекты этих анимаций.Спасибо за любую помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...