Анимация при изменении свойства не срабатывает - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь создать текстовый блок состояния, который будет отображать такие вещи, как «База данных обновлена» и другую информацию, для которой диалог будет излишним.Он должен вспыхнуть на экране, а затем исчезнуть в течение 2 секунд или около того.Цель состоит в том, чтобы он оставался непрозрачным до тех пор, пока его связывание не будет обновлено, затем 1 непрозрачность и исчезнет.Проблема в том, что то, что я придумал, похоже, не сработало вообще.Вот мой код:

<TextBlock Text="{Binding AppState.Feedback}" x:Name="feedbackBlock"
                 Opacity="0" FontSize="100" Foreground="Black">
    <TextBlock.Triggers>
        <EventTrigger RoutedEvent="Binding.TargetUpdated">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetName="feedbackBlock"
                             Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:2" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </TextBlock.Triggers>
</TextBlock>

Не совсем уверен, с чего начать при отладке, я не получаю сообщение об ошибке, просто оно не отображается.

1 Ответ

0 голосов
/ 26 ноября 2018

Вы не сказали Привязке запустить событие TargetUpdated.Добавьте NotifyOnTargetUpdated=True к выражению Binding.Кроме того, вам не нужно устанавливать Storyboard.TargetName:

<TextBlock x:Name="feedbackBlock"
           Text="{Binding AppState.Feedback, NotifyOnTargetUpdated=True}"
           Opacity="0" FontSize="100" Foreground="Black">
    <TextBlock.Triggers>
        <EventTrigger RoutedEvent="Binding.TargetUpdated">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                     To="1" Duration="0:0:2" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </TextBlock.Triggers>
</TextBlock>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...