如何设置动态DoubleAnimation To或From值

时间:2015-07-30 14:51:55

标签: c# wpf xaml storyboard doubleanimation

我有很多场景,我正在做简单的WPF故事板动画。

<Storyboard x:Key="MyTextBlockStoryBoard" RepeatBehavior="Forever">
    <DoubleAnimation AutoReverse="True"
                    Duration="0:0:8"
                    From="0.0"
                    Storyboard.TargetName="MyTextBlock"
                    Storyboard.TargetProperty="(Canvas.Left)"
                    To="500.0" />

</Storyboard>

但是我需要能够将此动画中的To值设置为相当于UserControl.ActualWidth - MyTextBlock.ActualWidth的动态值。我明白,显然我可以通过编程方式轻松创建一个Storyboard,但我希望留在Xaml世界。

我的想法是,我能够实现这一目标的唯一方法是实现我自己的IValueConverter,但我希望可能有更简单的方法来实现我想要的输出?

1 个答案:

答案 0 :(得分:0)

这可以解决您的问题吗?绑定到UserControl元素的ActualWidth属性。

<Storyboard x:Key="MyTextBlockStoryBoard" RepeatBehavior="Forever">
    <DoubleAnimation AutoReverse="True"
            Duration="0:0:8"
            From="0.0"
            Storyboard.TargetName="MyTextBlock"
            Storyboard.TargetProperty="(Canvas.Left)"
            To="{Binding ElementName=MyUserControl, Path=ActualWidth, Mode=OneWay}" />

</Storyboard>