我已经阅读了一些关于此的主题,但我仍然不知道如何解决我的问题。我来自 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
但是还是没有找到这个案例的解决方案。
提前致谢。
最佳答案
尝试:
private void onMyStoryBoardCompleted(object sender, object e)
{ }
并使用通用的 EventHandler<object>
订阅:
myStoryBoard.Completed += new EventHandler<object>(onMyStoryBoardCompleted);
当然,这违反了 .NET Framework 约定,即事件处理程序的第二个参数应该是 EventArgs
的实例。 (或其派生类)。我假设您正在另一个框架上运行,例如 Windows 8 Metro,其 Timeline
类定义了一个 Completed
事件 EventHandler<object>
签名。
关于c# - 无法将类型 'System.EventHandler' 隐式转换为 'System.EventHandler<object>' 以完成 Storyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16636830/