2010-02-03 35 views
2

我在窗口下面的XAML代碼:WPF - 動畫作出的錯誤信息消失

<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完成。

我的直覺告訴我有一種方法可以用動畫做到這一點,但我不是動畫專家,可以使用一些幫助。

另一種選擇是嘗試設置一個計時器並用它控制它。

回答

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分鐘(或其他),設置TARGETNAME到你的邊界元素。