从storyboard获取动画元素

本文关键字:元素 动画 获取 storyboard | 更新日期: 2023-09-27 18:02:06

我在资源字典文件中有这个故事板:

<Storyboard x:Key="InfoDissolve">
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)">
        <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}"/>
        <DiscreteObjectKeyFrame KeyTime="0:0:5" x:Name="OutVisibility" Value="{x:Static Visibility.Hidden}"/>
    </ObjectAnimationUsingKeyFrames>
    <DoubleAnimation                
          Storyboard.TargetProperty="Opacity"
          BeginTime="0:0:0" From="0.0" To="1.0" Duration="0:0:0.3"/>
    <DoubleAnimation              
          x:Name="OutOpacity"
          Storyboard.TargetProperty="Opacity"            
           BeginTime="0:0:3" From="1.0" To="0.0" Duration="0:0:2"/>
</Storyboard>

后面的代码是这样的

var sb = (Storyboard) MW.FindResource("InfoDissolve");

在后面的代码中,我需要访问outvisibility关键帧和outopacity doubleanimation,这样我就可以改变它们的keytime和begintime。

我该怎么做呢?

从storyboard获取动画元素

sb.Children

这个时间轴集合将包含两个DoubleAnimation对象。只需在它们的名称上添加一个测试,然后对每个名称做您想做的事情(我相信您需要对它们进行强制转换)