我有一个资源字典,其中包含我的窗口样式。在这种风格中,我定义了模板,并在其中定义了很多东西。其中,我定义了一个故事板来为模板中定义的某些内容设置动画。它看起来像这样:
<Style TargetType="local:MyWindow">
<Setter Property="Background" Value="red" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:MyWindow">
<Grid>
<Grid.Resources>
<Storyboard x:Key="MyAnimation">
<DoubleAnimation Storyboard.TargetName="ToBeAnimated" ... />
</Storyboard>
</Grid.Resources>
<Grid x:Name="ToBeAnimated" Background="Green"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
现在我有一个 MyWindow 的实例(它肯定会应用样式:))并且我想从窗口内触发动画。然而,这
this.FindResource("MyAnimation");
失败!
如果我将情节提要移到
<ControlTemplate.Resources/>
它可以找到它,但如果我找到了
((Storyboard)FindResource("StoryboardOpenOverlay")).Begin();
我收到另一个错误,它找不到ToBeAnimated
...
有任何想法吗?