无法将类型’System.EventHandler’隐式转换为’System.EventHandler ‘以完成情节提要

我已经阅读了一些关于此的线索,但我仍然不知道如何在我的情况下解决它。 我来自Java,而且大多是C#的新手

我想在动画结束时附加监听器:

myStoryBoard.Completed += new EventHandler(onMyStoryBoardCompleted); 

和:

 private void onMyStoryBoardCompleted(object sender, EventArgs e) { } 

我在标题中得到错误。 我试过了:

  myStoryBoard.Completed += new EventHandler(onMyStoryBoardCompleted); 

但后来我得到:

 no overload for 'onMyStoryBoardCompleted' matches delegate 'System.EventHandler' 

所以似乎签名与EventHandler 不兼容,我找不到如何使它兼容,我也不知道这种方法是否正确。

我读

了解C#中的事件和事件处理程序

从System.EventHandler到System.EventHandler 的C#动态模板隐式转换错误

在Windows 8应用程序中为DispatcherTimer的Tick事件定义事件处理程序

但仍然没有找到这种情况的解决方案。

提前致谢。

尝试:

 private void onMyStoryBoardCompleted(object sender, object e) { } 

并使用通用EventHandler订阅:

 myStoryBoard.Completed += new EventHandler(onMyStoryBoardCompleted); 

当然,这违反了.NET Framework约定,即事件处理程序的第二个参数应该是EventArgs (或其派生类)的实例。 我假设您正在运行另一个框架,例如Windows 8 Metro,其Timeline类使用EventHandler签名定义Completed事件。