我正在尝试制作TranslateTransform动画。在动画中,我需要我的对象保持在窗口的中心。我知道WPF动画是Freezable。我正在使用转换器,但是它在启动时会初始化值。有什么方法可以在运行时设置EasingDoubleKeyFrame的值吗?

这是我的XAML代码:

<Storyboard x:Key="Storyboard1">
    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" Storyboard.TargetName="grid">
        <EasingDoubleKeyFrame KeyTime="0" Value="{Binding Width, Converter={StaticResource Minus}, ElementName=grid}"/>
        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="{Binding Width, Converter={StaticResource EnteringValueConverter}, ElementName=grid}"/>
    </DoubleAnimationUsingKeyFrames>
</Storyboard>

最佳答案

将x:Name属性添加到EasingDoubleKeyFrame元素。
之后,您应该可以通过代码访问它:

x:Name =“ keyframe”

然后:

keyframe.SetValue(EasingDoubleKeyFrame.ValueProperty,yourValue);

10-07 23:10