【问题标题】:WPF Control VisibilityWPF 控件可见性
【发布时间】:2011-10-12 08:03:17
【问题描述】:

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

【问题讨论】:

    标签: c# .net wpf


    【解决方案1】:

    我假设您希望停靠面板成为某种弹出和消失的消息框:

    您可以创建一个包含两个动画的故事板。第一个动画将停靠面板的可见性更改为可见,第二个更改为隐藏,但相对于故事板的开始时间为 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>
      

      【讨论】:

      • 谢谢兄弟!这就是我要的。我现在的问题是在停靠面板的可见性在 2 秒后隐藏后,我想调用某个函数。这个可以吗?
      • 您可以订阅storyboard的已完成事件
      猜你喜欢
      • 2012-07-17
      • 1970-01-01
      • 2012-06-12
      • 2012-05-11
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      • 2010-11-27
      相关资源
      最近更新 更多