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

Hel*_*ers 5 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"/>
Run Code Online (Sandbox Code Playgroud)

我有以下StoryBoard动画定义如下.

<Storyboard x:Name="myStoryBoard">
    <DoubleAnimation Storyboard.TargetName="myProgressBar"
                     Storyboard.TargetProperty="Value"
                     From="0"
                     To="100"
                     Duration="00:00:04" />
</Storyboard>
Run Code Online (Sandbox Code Playgroud)

后面的C#代码调用Storyboard的begin函数.

myStoryBoard.Begin();
Run Code Online (Sandbox Code Playgroud)

但是我没有看到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>
Run Code Online (Sandbox Code Playgroud)

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

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

Dan*_*ani 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>
Run Code Online (Sandbox Code Playgroud)