我已经阅读过关于此的几个主题,但我仍然不知道如何在我的情况下解决它。我来自Java,主要是C#
的新手我想在动画结束时附加监听器:
myStoryBoard.Completed += new EventHandler(onMyStoryBoardCompleted);
和
private void onMyStoryBoardCompleted(object sender, EventArgs e)
{
}
我在标题中收到错误。我试过了:
myStoryBoard.Completed += new EventHandler<object>(onMyStoryBoardCompleted);
但后来我得到了:
no overload for 'onMyStoryBoardCompleted' matches delegate 'System.EventHandler<object>'
所以看起来签名与EventHandler <object>
不兼容,我找不到如何使它兼容,我也不知道这种方法是否正确。
我读了
Understanding events and event handlers in C#
defining event handler for Tick event of DispatcherTimer in windows 8 app
但是仍然找不到这种情况的解决方案。
提前致谢。
答案 0 :(得分:8)
尝试:
private void onMyStoryBoardCompleted(object sender, object e)
{ }
使用通用EventHandler<object>
订阅:
myStoryBoard.Completed += new EventHandler<object>(onMyStoryBoardCompleted);
当然,这与.NET Framework约定相反,即事件处理程序的第二个参数应该是EventArgs
的实例(或从中派生的类)。我假设您正在运行另一个框架,例如Windows 8 Metro,其Timeline
类定义了EventHandler<object>
个{{1}}个签名的事件。