WPF Storyboard需要TargetName

时间:2013-06-02 17:36:25

标签: wpf animation storyboard

我的应用程序中弹出“正在播放”窗口,现在我想对其显示/隐藏应用任何炫酷效果。我不想在每次需要显示/隐藏它时创建/配置窗口,所以我想我不能使用Window.Triggers。我创建了示例故事板并从代码隐藏中调用它;所以它立即陷入异常No target was specified for 'System.Windows.Media.Animation.DoubleAnimation。我找到了this answer并添加了Storyboard.TargetName属性。

    <Window.Resources>
        <Storyboard x:Key="OpenAnimation">
            <DoubleAnimation Storyboard.TargetName="NowPlaying" Storyboard.TargetProperty="(Window.Opacity)" Duration="0:0:5" From="0" To="1" />
        </Storyboard>
    </Window.Resources>

但它引发了另一个异常:Can't find name "NowPlaying" in namespace "VKPlaylist.GUI.NowPlaying".但窗口代码隐藏类名称为NowPlaying。我还尝试使用命名空间的全名,并没有改变它。

我应该如何在此属性中指出正确的名称?是否有像“this”这样的“魔术”关键词,故事板会知道应用动画的位置?我不能在XAML中为窗口分配名称属性(可能不能)。看起来上面的答案中的老兄很容易通过添加这个属性来解决他的问题。我缺少什么?

1 个答案:

答案 0 :(得分:1)

您需要在Name上设置<Window>属性,以便TargetName可以引用它。