DoubleAnimation的DataBind Duration属性

时间:2014-07-23 12:55:58

标签: wpf binding storyboard

简而言之,我的问题是:我可以在故事板的持续时间属性中使用数据绑定吗?

我的目的是设计一个循环进度条,我有一个简单的计数器。现在基于计数器,我想改变动画的持续时间。有什么方法可以通过数据绑定实现这一点,还是有其他方法。

我正在使用Arc来创建进度条效果,如下所示。当DependencyProperty PauseAnimation变为false时,我的动画开始。当它设置为true时,它会重置(我无法找到暂停动画的方法,所以我将其重置为从开始开始)。以下代码运行完美,但我无法设置故事板的持续时间。我想根据我控制中的属性更改它。我能做到吗?

<ed:Arc x:Name="AnimatingArc" ArcThickness="2" ArcThicknessUnit="Pixel" StartAngle="0" EndAngle="360" Fill="{DynamicResource ApplicationPrimaryColour}" HorizontalAlignment="Left" Height="25"  Stretch="None" Stroke="Transparent" VerticalAlignment="Top" Width="25" Margin="8,47,0,0">
                    <ed:Arc.Style>
                        <Style TargetType="{x:Type ed:Arc}">
                            <Style.Triggers>
                                <DataTrigger Binding="{Binding PauseAnimation}" Value="false">
                                    <DataTrigger.EnterActions>
                                        <BeginStoryboard>
                                            <Storyboard>
                                                <DoubleAnimation Storyboard.TargetProperty="StartAngle" From="0" To="360" Duration="0:0:30" />
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </DataTrigger.EnterActions>
                                    <DataTrigger.ExitActions>
                                        <BeginStoryboard>
                                            <Storyboard>
                                                <DoubleAnimation Storyboard.TargetProperty="StartAngle" To="0" Duration="0:0:10" />
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </DataTrigger.ExitActions>
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </ed:Arc.Style>

0 个答案:

没有答案