【问题标题】:WPF Storyboard beginner problemWPF Storyboard 初学者问题
【发布时间】:2010-10-28 23:18:17
【问题描述】:

我正在编写我的第一个 WPF 应用程序,并尝试在窗体关闭时实现淡入淡出动画。我遇到了这个问题Fading out a wpf window on close,它展示了如何制作淡出动画,但我似乎无法让它工作。我的 XAML 中有这个:

<Window.Resources>
    <Storyboard Name="FadeOutStoryboard" x:Key="FadeOutStoryboard" Completed="FadeOutStoryboard_Completed">
        <DoubleAnimation Storyboard.TargetProperty="Window.Opacity" From="1" To="0" Duration="0:0:2" FillBehavior="HoldEnd" />
    </Storyboard>
</Window.Resources>

然后我有这个事件处理程序:

    private bool doneFade;
    private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        if (!doneFade)
        {
            e.Cancel = true;
            Storyboard sb = (Storyboard)this.FindResource("FadeOutStoryboard");
            sb.Begin();
        }
    }

但是当sb.Begin() 方法被调用时,我得到了这个异常:

System.InvalidOperationException: No target was specified for 'System.Windows.Media.Animation.DoubleAnimation'.

如前所述,这是我第一次尝试 WPF,所以我很困惑我需要做什么才能在表单关闭时添加淡出。

【问题讨论】:

    标签: .net wpf animation storyboard


    【解决方案1】:

    您需要向 StoryBoard 动画添加目标 UI 元素,否则将无法应用动画。

    <Storyboard Name="FadeOutStoryboard" x:Key="FadeOutStoryboard" Completed="FadeOutStoryboard_Completed">        
         <DoubleAnimation Storyboard.TargetName="myWindow" Storyboard.TargetProperty="Window.Opacity" From="1" To="0" Duration="0:0:2" FillBehavior="HoldEnd" />    
    </Storyboard>
    

    【讨论】:

      猜你喜欢
      • 2020-01-04
      • 2020-11-23
      • 2015-03-16
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多