Ixx*_*Ixx 6 c# microsoft-metro windows-8
我已经阅读了一些关于此的线索,但我仍然不知道如何在我的情况下解决它.我来自Java,大多是C#的新手
我想在动画结束时附加监听器:
myStoryBoard.Completed += new EventHandler(onMyStoryBoardCompleted);
Run Code Online (Sandbox Code Playgroud)
和:
private void onMyStoryBoardCompleted(object sender, EventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
我在标题中得到错误.我试过了:
myStoryBoard.Completed += new EventHandler<object>(onMyStoryBoardCompleted);
Run Code Online (Sandbox Code Playgroud)
但后来我得到:
no overload for 'onMyStoryBoardCompleted' matches delegate 'System.EventHandler<object>'
Run Code Online (Sandbox Code Playgroud)
所以似乎签名与EventHandler不兼容,<object>我找不到如何使它兼容,我也不知道这种方法是否正确.
我读
从System.EventHandler到System.EventHandler <TEventArgs>的C#动态模板隐式转换错误
在Windows 8应用程序中为DispatcherTimer的Tick事件定义事件处理程序
但仍然没有找到这种情况的解决方案.
提前致谢.
尝试:
private void onMyStoryBoardCompleted(object sender, object e)
{ }
Run Code Online (Sandbox Code Playgroud)
并使用通用订阅EventHandler<object>:
myStoryBoard.Completed += new EventHandler<object>(onMyStoryBoardCompleted);
Run Code Online (Sandbox Code Playgroud)
当然,这违反了.NET Framework约定,即事件处理程序的第二个参数应该是EventArgs(或从中派生的类)的实例.我假设您正在运行另一个框架,例如Windows 8 Metro,其Timeline类定义了Completed带EventHandler<object>签名的事件.
| 归档时间: |
|
| 查看次数: |
14501 次 |
| 最近记录: |