Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法隐式转换类型';System.EventHandler';至';System.EventHandler<;对象>';故事板完成_C#_Windows 8_Microsoft Metro - Fatal编程技术网

C# 无法隐式转换类型';System.EventHandler';至';System.EventHandler<;对象>';故事板完成

C# 无法隐式转换类型';System.EventHandler';至';System.EventHandler<;对象>';故事板完成,c#,windows-8,microsoft-metro,C#,Windows 8,Microsoft Metro,我已经读了一些关于这方面的文章,但我仍然不知道如何在我的案例中解决它。我来自Java,对C基本上是新手# 我想在动画完成时附加侦听器: myStoryBoard.Completed += new EventHandler(onMyStoryBoardCompleted); 以及: 我得到了标题中的错误。我试过: myStoryBoard.Completed += new EventHandler<object>(onMyStoryBoardCompleted); myStory

我已经读了一些关于这方面的文章,但我仍然不知道如何在我的案例中解决它。我来自Java,对C基本上是新手#

我想在动画完成时附加侦听器:

myStoryBoard.Completed += new EventHandler(onMyStoryBoardCompleted);
以及:

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

 myStoryBoard.Completed += new EventHandler<object>(onMyStoryBoardCompleted);
myStoryBoard.Completed+=neweventhandler(onMyStoryBoardCompleted);
但我得到:

no overload for 'onMyStoryBoardCompleted' matches delegate 'System.EventHandler<object>'
没有与委托“System.EventHandler”匹配的“OnSystemBoardCompleted”重载
因此,签名似乎与EventHandler
不兼容,我找不到如何使其兼容,我也不知道这种方法是否正确

我读

但是仍然没有找到解决这个问题的办法

提前感谢。

试试:

private void onMyStoryBoardCompleted(object sender, object e)
{ }
并使用通用的
事件处理程序订阅:


myStoryBoard.Completed+=neweventhandler(onMyStoryBoardCompleted);

当然,这违背了.NET Framework约定,即事件处理程序的第二个参数应该是
EventArgs
(或其派生的类)的实例。我假设您正在另一个框架上运行,例如Windows 8 Metro,它的
Timeline
类定义了一个带有
EventHandler
签名的事件您应该使用哪个故事板类?如果它是
Timeline
派生的,
Completed
应该被定义为类型EventHandler,这意味着它应该编译无误。我正在引用UserControl.Resource中XAML中的故事板tag@SLaks:不在Windows 8 Metro上。显然,它确实是
EventHandler
。您是否使用通用的
EventHandler
进行了尝试?你犯了什么错误?啊,这个组合确实有效!奇怪的是,方法签名是由VisualStudio生成的。是的,我是为Metro开发的。或者,这并不奇怪,Visual Studio做得很正确,因为它为EventHandler生成了它(OnSystemBoardCompleted)。@Murkaeus请不要添加不必要的评论,我想我的个人资料看起来并不像我不知道如何使用它。@Murkaeus是否有时间限制或一些东西可以将答案标记为正确的?事实上,我添加了一条评论说“它可以工作”,并不意味着一切都很好,也许我想再次检查它(运行时,等等)。也许在那之前我还有别的事要做。不知道您使用此网站多久了,但仅供参考,选择答案通常需要数小时、数天或数周。
private void onMyStoryBoardCompleted(object sender, object e)
{ }
myStoryBoard.Completed += new EventHandler<object>(onMyStoryBoardCompleted);