WPF控制可见性

本文关键字:可见性 控制 WPF | 更新日期: 2023-09-27 18:03:15

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

WPF控制可见性

试一下

<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>

我假设您希望dock面板是某种弹出-消失消息框:

你可以用两个动画创建一个故事板。第一个动画将dock面板的可见性变为可见,第二个动画将变为隐藏,但是起始时间相对于故事板的开始时间为2秒。