Как анимировать свойство ProgressBar Value с помощью раскадровки DoubleAnimation в Windows 8.1


У меня есть приложение Windows 8.1 с прогрессом, определенным следующим образом

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

У меня есть следующая анимация раскадровки, определенная следующим образом.

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

Этот код C# вызывает функцию begin раскадровки.

myStoryBoard.Begin();

Но я не вижу никаких изменений в свойстве Value ProgressBar.

Однако, если я применяю подобную раскадровку анимации для свойства непрозрачности того же ProgressBar, она работает плавно, я могу видеть, как ProgressBar исчезает как ожидаемый.

<Storyboard x:Name="myOpacityStoryBoard">
        <DoubleAnimation Storyboard.TargetName="myProgressBar"
                         Storyboard.TargetProperty="Opacity"
                         From="1"
                         To="0"
                         Duration="0:0:4">
</Storyboard>
Я не совсем понимаю, что происходит. Я проверил, что свойство Value является двойным, как и непрозрачность. Я делаю что-то не так? Я был бы рад, если бы кто-то мог направить меня в правильном направлении.
1 5

1 ответ:

Вам просто нужно добавить EnableDependentAnimation="True" в анимацию.

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