WPF控制可见性

时间:2011-07-25 05:48:22

标签: c# .net wpf

我有一个WPF应用程序,我将一个停靠面板放在网格上,然后默认停靠面板是隐藏的。在网格中我有一个按钮,当我点击它时,停靠面板的可见性是可见的,我想在2秒后隐藏停靠面板。我该怎么做?

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秒的开始时间。