Как заставить ProgressIndicator исчезать?
В моем приложении WP8 я использую ProgressIndicator
и я бы хотел, чтобы он исчез, прежде чем сделать его невидимым. Я не могу найти документацию, описывающую, как я могу это сделать, единственное открытое свойство ProgressIndicator
является IsVisible
который не обеспечивает никакой анимации.
Тем не менее, в некоторых приложениях я отчетливо вижу исчезновение индикатора выполнения.
Так как я могу сделать это исчезнуть?
2 ответа
К сожалению, вы не можете анимировать компоненты оболочки WP7/WP8, кроме анимации по умолчанию. Так как ProgressIndicator и SystemTray являются частью пользовательского интерфейса оболочки (наряду с ApplicationBar, MessageBox и другими), вам придется согласиться на переходы встроенного режима.
Если это действительно беспокоит вас, вы всегда можете воссоздать опыт ProgressIndicator с управляемым ProgressBar как часть вашего приложения <Frame />
Шаблон.
Взгляните на класс DoubleAnimation на 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();
}
Вы захотите отключить индикатор выполнения и сбросить его непрозрачность после того, как он исчезнет, поэтому используйте событие Completed раскадровки для сброса этих свойств.
private void DisableMyProgressBar(object sender, EventArgs e)
{
MyProgressBar.IsEnabled = false;
MyProgressBar.Opacity = 1;
}