这是我的计时器代码,我想在我的计时器达到0后加载我的gameover.xaml。如何连接事件。
public void StartTimer(object o, RoutedEventArgs sender)
{
myDispatcherTimer = new DispatcherTimer();
myDispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 1000); // 1000 Milliseconds
myDispatcherTimer.Tick += new EventHandler(Each_Tick);
myDispatcherTimer.Start();
}
// counter
int i = 60;
public void Each_Tick(object o, EventArgs sender)
{
timerBlock.Text = "Time: " + i--.ToString() + "s";
}
这是我的事件方法
private void gameOverEvent(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/gameOver.xaml", UriKind.Relative));
}
我该怎么做 -
if (i <= 0)
something += new EventHandler(gameOverEvent);
我应该把什么东西放进去。
答案 0 :(得分:2)
你根本不需要一个gameOverEvent,你可以在Every_Tick事件处理程序中检查i = 0,如果它是
则导航到页面上的游戏public void Each_Tick(object o, EventArgs sender)
{
timerBlock.Text = "Time: " + i--.ToString() + "s";
if(i = 0)
{
NavigationService.Navigate(new Uri("/gameOver.xaml", UriKind.Relative));
}
}
答案 1 :(得分:1)
if (i <= 0)
gameOverEvent(null, null);
答案 2 :(得分:1)
您必须在类中实现一个Eventhandler,如
public event EventHandler GameLost;
从这个课程中你可以举起活动
if ((this.GameLost != null) && (i <= 0))
this.GameLost(this, new EventArgs());
有关更详细的指南,请参阅此tutorial。