WPF - анимация для исчезновения сообщения об ошибке - PullRequest
2 голосов
/ 04 февраля 2010

В моем окне есть следующий xaml:

<Border Height="100" BorderBrush="Black" BorderThickness="2" CornerRadius="10" Background="PaleVioletRed" HorizontalAlignment="Center" VerticalAlignment="Center">
   <TextBlock Margin="10"  HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="17" FontWeight="Bold">Error Message Here</TextBlock>
</Border>

Что в основном отображает это:
альтернативный текст http://xs.to/thumb-4CB2_4B69F8E6.jpg

Я планирую связать его Visibility с переменной состояния ошибки, чтобы она показывала, когда происходит ошибка.

Но я не хочу показывать это долго. Я хотел бы, чтобы это исчезло / исчезло через 2 секунды. Есть ли способ сделать это через XAML? Или хороший способ WPF?

Примерно такая логика псевдокода:

when (ErrorMessage.Visibility == Visible )
{
    Wait(2000); // Wait 2 seconds
    ErrorMessage.Visibility == Collapsed;
}

но предпочтительно сделано с XAML.

Мои инстинкты говорят мне, что есть способ сделать это с помощью анимации, но я не специалист по анимации и могу использовать некоторую помощь.

Другой вариант - попытаться настроить таймер и управлять им с помощью него.

1 Ответ

2 голосов
/ 04 февраля 2010

используйте что-то вроде этого ...

<EventTrigger RoutedEvent="Page.Loaded">

    <BeginStoryboard>
         <Storyboard BeginTime="0:0:1">
              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="image1" Storyboard.TargetProperty="Visibility">
                    <DiscreteObjectKeyFrame Value="{x:Static Visibility.Visible}" />
                   </ObjectAnimationUsingKeyFrames>
              </Storyboard>

    </BeginStoryboard>
    </EventTrigger>

измените перенаправленное событие в соответствии с вашими потребностями, установите BeginTime на раскадровке на 2 минуты (или что-то еще), установите для targetname свой элемент border.

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