我正在尝试使用WPF中的故事板为路径设置动画。我尝试使用以下代码。
<Ellipse Name="src" Canvas.Left="50" Canvas.Top="150" Width="20" Height="30"
Stroke="Black" StrokeThickness="1" Fill="Red"/>
<Path x:Name="path" StrokeDashOffset="220" StrokeDashArray="220 220" Data="M60,165 L210,210" Stroke="red" >
<Path.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation From="220" To="0" Duration="{Binding duration}" Storyboard.TargetProperty="(Shape.StrokeDashOffset)"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Path.Triggers>
</Path>
<Ellipse Name="dest" Canvas.Left="200" Canvas.Top="200" Width="20" Height="20"
Stroke="Black" StrokeThickness="1" Fill="Yellow"/>
但是这些值无法绑定到<DoubleAnimation>
的属性。还有其他方法可以绑定到这些属性吗?
任何人都会帮我做这个。
答案 0 :(得分:1)
首先, duration
应该是属性而不是字段,如果你想绑定它。
其次,Duration
DoubleAnimation的DP属于Duration
类型,而不是TimeSpan
。所以属性类型应该是持续时间而不是TimeSpan 。
财产声明应如下:
private Duration duration = new Duration(TimeSpan.FromSeconds(50));
public Duration Duration
{
get
{
return duration;
}
}
此外,根据MS属性名称约定,属性名称应为Pascal大小写。因此,我已将属性名称更新为Duration
而非duration
。