【发布时间】:2011-10-12 08:03:17
【问题描述】:
我有一个 WPF 应用程序,我在网格上放置了一个停靠面板,然后默认情况下停靠面板是隐藏的。在网格中,我有一个按钮,当我单击它时,停靠面板的可见性是可见的,我希望停靠面板在 2 秒后隐藏。我该怎么做?
【问题讨论】:
我有一个 WPF 应用程序,我在网格上放置了一个停靠面板,然后默认情况下停靠面板是隐藏的。在网格中,我有一个按钮,当我单击它时,停靠面板的可见性是可见的,我希望停靠面板在 2 秒后隐藏。我该怎么做?
【问题讨论】:
我假设您希望停靠面板成为某种弹出和消失的消息框:
您可以创建一个包含两个动画的故事板。第一个动画将停靠面板的可见性更改为可见,第二个更改为隐藏,但相对于故事板的开始时间为 2 秒。
【讨论】:
这样试试
<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>
【讨论】: