我是Metro Style Developing的初学者, 我试图制作一个需要定时器的小游戏,倒数从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上阅读这个问题: How to Implement a timer in Metro Style App 但这没用。
我可以为倒数计时器做些什么?
答案 0 :(得分:3)
CountdownControl中有一个WinRT XAML Toolkit也可以帮助你 - 它基本上是使用一个事件之间需要1秒的动画。另一种选择是使用async / await关键字 - 你基本上可以说等待Task.Delay(1000)等待一秒钟并在一个循环中调用它来倒数秒。这也是便携式的。
答案 1 :(得分:0)
我不确定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();
});
});
这种方法的一大优点 - 您的代码在框架之间更容易移植。希望这会有所帮助。