Я занимаюсь разработкой «Универсальное приложение» для ОС Windows 8.1 и Windows Phone 8,1ProgressRing не отображается в то время как приложение работает
Мне нужно добавить ProgressRing
контроль на мою страницу, потому что есть задача, которая занимает некоторое время для завершения, и я должен уведомить пользователя о том, что приложение загружает данные. Так что я следовал инструкции по MDSN в следующей ссылке:
To create an indeterminate progress ring и они заявили, что я точно нужно:
4. Добавление неопределенную прогресс кольцо
Когда вы не можете оценить, сколько осталось работы для завершения задачи, а задача блокирует взаимодействие пользователя, используйте неопределенное кольцо выполнения. Неопределенное кольцо прогресса показывает анимированную последовательность точек , движущихся по кругу.
Проблема заключается в том, что ProgressRing
не играет анимации «загрузки», когда я вставляю prog.IsActive = true;
перед кодом, который запускает задачу
Если я комментирую Целевую строк кода, он играет.
XAML:
<ProgressRing x:Name="prog" Margin="435,349,388,181" FontFamily="{StaticResource FontFamily6}" FontSize="25" />
C#:
private void LevelTap(object sender, TappedRoutedEventArgs e)
{
prog.IsActive = true;
CheckNav(sender);
}
private void CheckNav(object sender)
{
TextBlock tb = sender as TextBlock;
GameSetter game = new GameSetter();
game.Level = (int)TextDict[tb];
if (!LevelsArr[game.Level]) return;
if (!goToLeader)
{
prog.IsActive = false;
CallNav(true, game);
}
else
{
prog.IsActive = false;
CallNav(false, game);
}
}
private void CallNav(bool b,GameSetter g)
{
if(b) Frame.Navigate(typeof(Game8), g);
else Frame.Navigate(typeof(MainPage), g);
}
Примечание: задача, которая работает использует Dictionary
, Windows.Storage.ApplicationData
и Navigation
на другую страницу, в конце концов.
гул, позвольте мне угадать, 'GameSetter game = new GameSetter();' занимает значительное количество времени, не так ли? – kennyzx
@kennyzx не совсем, конструктор ничего не делает на самом деле, и у него есть только 3 пропозиции. – GabourX
поэтому после того, как вы запустите кольцо прогресса, вы сразу же остановите его, установив 'prog.IsActive = false;' - поскольку, похоже, нет времени, требующего много времени. – kennyzx