Metro应用的倒数计时器

我是Metro Style Develop的初学者,我试图制作一个需要定时器的小游戏,倒计时从10到0.但是在这个Visual Studio中没有Timer Component,而DispatcherTimer没有映射到xmlns。

我试图使用TimeSpan,这个字段有“TicksPerSecond”但是这个例子不能帮助我制作我的倒数计时器: http : //msdn.microsoft.com/en-us/library/system.timespan.tickspersecond.aspx

TimeSpan也有这个方法“FromSeconds”,我也不能将这个用于我的倒数计时器: http : //msdn.microsoft.com/en-us/library/system.timespan.fromseconds.aspx

另外我在stackoverflow上阅读了这个问题: 如何在Metro Style App中实现计时器,但这没用。

我能为这个倒数计时器做些什么?

WinRT XAML工具包中有一个CountdownControl也可以帮助你 – 它基本上是使用一个事件之间需要1秒的动画。 另一个选择是使用async / await关键字 – 你基本上可以说等待Task.Delay(1000)等待一秒钟并在循环中调用它来倒数秒。 这也是便携式的。

我不确定xmlns是什么意思,你想在XAML中使用DispatcherTimer吗? 好吧,这是不可能的,但这不是什么大问题,只需从你的代码中使用它。

在我的应用程序中,我正在密集使用Reactive Extensions 。 Rx v2.0 Beta支持winrt,因此可以通过以下方式解决计时器问题(同样在后面的代码中,而不是在XAML中):

Observable.Interval(TimeSpan.FromSeconds(1)).Take(10).ForEachAsync(x => { Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { new MessageDialog("seconds: " + (10-x), "timer").ShowAsync(); }); }); 

这种方法的一大优点 – 您的代码在框架之间更容易移植。 希望这可以帮助。