我有一个 Storyboard 对象实例的引用,并且想要获取它附加到/动画的框架元素。我一直无法想出任何方法来做到这一点。
例如,在下面的 XAML 中,我可以从对情节提要的引用中获取标签或网格
<Grid>
<Grid.Resources>
<Storyboard x:Key="myStoryboard">
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:5"/>
</Storyboard>
<Style x:Key="myStyle" TargetType="{x:Type Label}">
<Style.Triggers>
<DataTrigger
Binding="{Binding Path=StartAnimation}" Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource myStoryboard}" />
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<Label x:Name="labelHello" Grid.Row="0" Style="{StaticResource myStyle}">Hello</Label>
</Grid>
对于那些想知道为什么我需要这样做的人,这是因为我正在尝试创建一个派生的 Storyboard 类或附加的行为,这将允许我在 DataContext 上指定一个方法名称,以便在 Storyboard 完成事件触发时调用。这将允许我做纯粹的 MVVM,而不是需要一些代码来调用我的视图模型。