我的窗口中有以下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。
我的直觉告诉我有一种方法可以用动画做到这一点,但我不是动画专家,可以使用一些帮助。
另一个选择是尝试设置计时器并用它控制它。
答案 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元素。