如何使用Windows 8.1中的Storyboard DoubleAnimation为ProgressBar值属性设置动画

时间:2014-11-10 11:59:19

标签: c# winrt-xaml windows-8.1 win-universal-app

我有一个Windows 8.1应用程序,其Progress定义如下

<ProgressBar x:Name="myProgressBar" Opacity="1" Minimum="0" Maximum="100" Value="0"/>

我将以下StoryBoard动画定义如下。

<Storyboard x:Name="myStoryBoard">
    <DoubleAnimation Storyboard.TargetName="myProgressBar"
                     Storyboard.TargetProperty="Value"
                     From="0"
                     To="100"
                     Duration="00:00:04" />
</Storyboard>

这个C#代码后面调用了Storyboard的begin函数。

myStoryBoard.Begin();

但我没有看到ProgressBar的Value Property发生任何变化。

但是,如果我为同一个ProgressBar的Opacity属性应用类似的StoryBoard动画,它可以无缝地工作,我可以看到ProgressBar按预期逐渐消失。

<Storyboard x:Name="myOpacityStoryBoard">
        <DoubleAnimation Storyboard.TargetName="myProgressBar"
                         Storyboard.TargetProperty="Opacity"
                         From="1"
                         To="0"
                         Duration="0:0:4">
</Storyboard>

我不确定发生了什么。我检查了Value Property是一个双倍,就像Opacity一样。我做错了吗?

如果有人能指导我朝着正确的方向前进,我会很高兴。

1 个答案:

答案 0 :(得分:3)

您只需要为动画添加EnableDependentAnimation="True"

<Storyboard x:Name="myStoryBoard">
    <DoubleAnimation Storyboard.TargetName="myProgressBar"
             Storyboard.TargetProperty="Value"
             EnableDependentAnimation="True"
             From="0"
             To="100"
             Duration="00:00:04" />
</Storyboard>