在我的WP8应用程序中,我使用ProgressIndicator
,我希望它在隐藏之前淡出。我找不到任何描述我如何做到这一点的文档,ProgressIndicator
的唯一暴露属性是IsVisible
,它不提供任何动画。
然而在某些应用程序中,我可以清楚地看到进度条逐渐淡出 那我怎么能让它淡出呢?
答案 0 :(得分:2)
不幸的是,您无法为WP7 / WP8的Shell组件制作超出其默认动画的动画。作为ProgressIndicator& SystemTray是Shell UI的一部分(与ApplicationBar,MessageBox和其他一起),你必须满足于buit-in过渡。
如果这确实让您感到麻烦,您可以随时使用托管的ProgressBar重新创建ProgressIndicator exprience作为应用的<Frame />
模板的一部分。
答案 1 :(得分:1)
查看DoubleAnimation class on msdn
<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();
}
您需要禁用进度条并在淡出后重置其不透明度,因此请使用Storyboard的Completed事件重置这些属性。
private void DisableMyProgressBar(object sender, EventArgs e)
{
MyProgressBar.IsEnabled = false;
MyProgressBar.Opacity = 1;
}