2015-06-24 3 views
1

Я работаю в WP 8.1 приложения (не SL) и имеют следующий код XAML:Bind DispatcherTimer к прогрессу Бар XAML WP 8.1

<Page> 
    <Grid> 
     <ProgressBar x:Name="TimeBar" IsIndeterminate="False" Maximum="200" Value="30" Height="10" Width="300"/> 
    </Grid> 
</Page> 

Это дает мне следующее:

progress bar

Я хочу связать объект таймера, так как по мере того, как время тикает и идет вперед, индикатор прогресса перемещается вместе с ним, пока таймер не остановится (доходит до 1 минуты).

У меня есть следующий код, но он не работает.

namespace BarWithTimer 
{ 
    public sealed partial class MainPage : Page 
    { 
     public DispatcherTimer Timer; 

     public MainPage() 
     { 
      InitializeComponent(); 
      Timer = new DispatcherTimer(); 
      Timer.Tick += TimerOnTick; 
      Timer.Interval = new TimeSpan(0, 1, 0); 
      Timer.Start(); 
      NavigationCacheMode = NavigationCacheMode.Required; 
     } 

     private void TimerOnTick(object sender, object o) 
     { 
      TimeBar.Value += 10; 
     } 
    } 
} 
+0

Что именно вы пытаетесь сделать? Ваш текущий код работает нормально, чтобы обновлять индикатор выполнения каждую минуту, потому что установленный вами интервал (1 минута) определяет, как часто вызывается обработчик Tick. – Jon

+0

Черт, спасибо, Джон, я думал, что у меня это было на секундах, а не минут. – Ciwan

+0

Тем не менее, вы, вероятно, должны использовать раскадровку вместо DispatcherTimer, чтобы анимировать ваш индикатор прогресса плавно –

ответ

0

Как предложил Джон, все, что мне нужно было сделать, это исправить интервал на таймере.

Timer.Interval = new TimeSpan(0, 0, 0, 0, 50); 

Это теперь вызывает обработчик Tick каждые 50 миллисекунд, и я вижу, что мой индикатор прогресса перемещается!

Спасибо Jon.

Смежные вопросы