我有一个WPF应用程序,我将一个停靠面板放在网格上,然后默认停靠面板是隐藏的。在网格中我有一个按钮,当我点击它时,停靠面板的可见性是可见的,我想在2秒后隐藏停靠面板。我该怎么做?
答案 0 :(得分:4)
试试这个
<Window x:Class="WpfApplication30.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Storyboard x:Key="ShowDock">
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="dock" Storyboard.TargetProperty="(UIElement.Visibility)">
<DiscreteObjectKeyFrame KeyTime="00:00:00" Value="{x:Static Visibility.Visible}"/>
<DiscreteObjectKeyFrame KeyTime="00:00:2" Value="{x:Static Visibility.Collapsed}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Grid>
<Grid>
<Button Content="show" Height="30" Width="100">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard Storyboard="{StaticResource ShowDock}"/>
</EventTrigger>
</Button.Triggers>
</Button>
</Grid>
<DockPanel x:Name="dock" Background="Pink" Visibility="Collapsed"/>
</Grid>
</Window>
答案 1 :(得分:2)
我假设您希望停靠面板成为某种弹出消失的消息框:
您可以创建一个包含两个动画的故事板。第一个是一个动画,它将停靠面板的可见性更改为可见,第二个是隐藏的,但相对于故事板的开始时间为2秒的开始时间。