WPF - 使错误消息消失的动画

时间:2010-02-03 22:37:07

标签: wpf animation

我的窗口中有以下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>

基本上显示了这个:
alt text http://xs.to/thumb-4CB2_4B69F8E6.jpg

我计划将它的可见性绑定到错误状态变量,以便在发生错误时显示。

但我不想长时间展示它。我希望它在2秒后消失/褪色。有没有办法通过XAML做到这一点?还是一个不错的WPF方式?

像这样的psudo代码逻辑:

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

但最好使用XAML。

我的直觉告诉我有一种方法可以用动画做到这一点,但我不是动画专家,可以使用一些帮助。

另一个选择是尝试设置计时器并用它控制它。

1 个答案:

答案 0 :(得分:2)

使用类似的东西......

<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分钟(或其他),将目标名称设置为border元素。