我有很多场景,我正在做简单的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
,但我希望可能有更简单的方法来实现我想要的输出?
答案 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>