这是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
?
谢谢。
答案 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);
更简单,对吧?