在我的 WP8 应用程序中,我使用 aProgressIndicator
并且我希望它在使其不可见之前淡出。我找不到任何描述我如何做到这一点的文档,唯一暴露的属性ProgressIndicator
是IsVisible
不提供任何动画。
然而在某些应用程序中,我可以清楚地看到进度条逐渐消失。
那么我怎样才能让它淡出呢?
在我的 WP8 应用程序中,我使用 aProgressIndicator
并且我希望它在使其不可见之前淡出。我找不到任何描述我如何做到这一点的文档,唯一暴露的属性ProgressIndicator
是IsVisible
不提供任何动画。
然而在某些应用程序中,我可以清楚地看到进度条逐渐消失。
那么我怎样才能让它淡出呢?
不幸的是,您无法为 WP7/WP8 的 Shell 组件设置超出默认动画的动画。由于 ProgressIndicator 和 SystemTray 是 Shell UI 的一部分(与 ApplicationBar、MessageBox 等一起),您必须适应内置的转换。
如果这真的让您感到困扰,您可以随时使用托管 ProgressBar 作为应用<Frame />
模板的一部分重新创建 ProgressIndicator 体验。
<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 事件来重置这些属性。
private void DisableMyProgressBar(object sender, EventArgs e)
{
MyProgressBar.IsEnabled = false;
MyProgressBar.Opacity = 1;
}