如何在代码隐藏中使用FadeOutThemeAnimation?

时间:2017-09-09 04:31:29

标签: c# uwp

这是XAML:

<Frame x:Name="Chapter"></Frame>

这是代码隐藏:

Storyboard ChangeChapterSB = new Storyboard();
FadeOutThemeAnimation FOTA = new FadeOutThemeAnimation();
FOTA.Duration = new TimeSpan(0, 0, 2);            
FOTA.TargetName = Chapter.Name;
ChangeChapterSB.Children.Add(FOTA);
ChangeChapterSB.Begin();

然而,Visual Studio抛出了一个新的例外:

  

System.Runtime.InteropServices.COMException:无法解析TargetName   章。


我已设置x:Name,为什么会抛出此异常?如何在代码隐藏中使用FadeOutThemeAnimation

谢谢。

1 个答案:

答案 0 :(得分:2)

这里有几点需要注意。

首先,FadeOutThemeAnimation是预先配置的动画,不允许您配置动画的Duration。我看到你把它设置为2s并且它不会做任何事情。

其次,您需要使用Storyboard.SetTarget()代替TargetName,因此以下代码应该有效。

Storyboard ChangeChapterSB = new Storyboard();
FadeOutThemeAnimation FOTA = new FadeOutThemeAnimation();
ChangeChapterSB.Children.Add(FOTA);
Storyboard.SetTarget(FOTA, Chapter);
ChangeChapterSB.Begin();

或者,请查看此Animate帮助程序方法,该方法可让您完全控制DoubleAnimation

在你的情况下,你只需写

Chapter.Animate(null, 0, nameof(Opacity), 2000);

更简单,对吧?