WPF俄罗斯方块报错:事件与RoutedEventHandler委托不匹配
解决WPF俄罗斯方块报错:No overload for 'GameCanvas_Loaded' matches delegate 'RoutedEventHandler'
问题出在你给事件绑定的方法签名不符合WPF对应事件的委托要求——你错误地用了KeyEventArgs作为参数,而Loaded和Click事件需要的是RoutedEventArgs参数。
正确的事件处理方法写法:
- GameCanvas_Loaded方法(对应Loaded事件):
private void GameCanvas_Loaded(object sender, RoutedEventArgs e) { // 你的初始化逻辑 }
- PlayAgain_Click方法(对应Click事件):
private void PlayAgain_Click(object sender, RoutedEventArgs e) { // 重新开始游戏的逻辑 }
为什么之前的写法不对?
WPF不同事件对应不同的委托类型:
Window_KeyDown属于KeyEventHandler委托,参数是KeyEventArgs,这个是对的;Loaded和Click事件属于RoutedEventHandler委托,必须接收RoutedEventArgs类型的参数,用KeyEventArgs会导致签名不匹配,触发报错。
修改完方法参数后,重新编译运行就能解决这个问题。
内容的提问来源于stack exchange,提问作者Molzard
相关产品推荐
相关产品推荐

