0

在我的 WP8 应用程序中,我使用 aProgressIndicator并且我希望它在使其不可见之前淡出。我找不到任何描述我如何做到这一点的文档,唯一暴露的属性ProgressIndicatorIsVisible不提供任何动画。

然而在某些应用程序中,我可以清楚地看到进度条逐渐消失。
那么我怎样才能让它淡出呢?

4

2 回答 2

2

不幸的是,您无法为 WP7/WP8 的 Shell 组件设置超出默认动画的动画。由于 ProgressIndicator 和 SystemTray 是 Shell UI 的一部分(与 ApplicationBar、MessageBox 等一起),您必须适应内置的转换。

如果这真的让您感到困扰,您可以随时使用托管 ProgressBar 作为应用<Frame />模板的一部分重新创建 ProgressIndicator 体验。

于 2013-01-27T20:12:48.133 回答
1

看看msdn上的DoubleAnimation类

<StackPanel>
    <StackPanel.Resources>
        <Storyboard x:Name="myStoryboard">
            <DoubleAnimation
          Storyboard.TargetName="MyProgressBar"
          Storyboard.TargetProperty="Opacity"
          From="1.0" To="0.0" Duration="0:0:5" 
          Completed="DisableMyProgressBar"/>
        </Storyboard>
    </StackPanel.Resources>

    <ProgressBar x:Name="MyProgressBar"  />

</StackPanel>

在您的处理完成时触发动画背后的代码。

private void StopProgressBar()
{
     myStoryboard.Begin();
}

您将希望禁用进度条并在它淡出后重置其不透明度,因此使用情节提要的 Completed 事件来重置这些属性。

时间线。在 msdn 上完成

private void DisableMyProgressBar(object sender, EventArgs e)
{
    MyProgressBar.IsEnabled = false;
    MyProgressBar.Opacity = 1;
}
于 2013-01-27T18:01:14.780 回答