Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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 - Fatal编程技术网

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

C# 无法隐式转换类型';System.EventHandler';至';System.EventHandler<;对象>';,c#,windows-8,C#,Windows 8,我正在尝试在指定时间内淡入文本框。此代码适用于Windows Phone,但不适用于Windows 8应用程序。我做了一些修改来修复尽可能多的错误。但我无法解析其中一个:无法将类型“System.EventHandler”隐式转换为“System.EventHandler”出现在表达式sb.Completed+=ehl上。完整函数如下: public static void Fade(UIElement target, double ValueFrom, double ValueTo,

我正在尝试在指定时间内淡入文本框。此代码适用于Windows Phone,但不适用于Windows 8应用程序。我做了一些修改来修复尽可能多的错误。但我无法解析其中一个:
无法将类型“System.EventHandler”隐式转换为“System.EventHandler”
出现在表达式
sb.Completed+=ehl
上。完整函数如下:

    public static void Fade(UIElement target, double ValueFrom, double ValueTo, double Duration)
    {
        DoubleAnimation da = new DoubleAnimation();
        da.From = ValueFrom;
        da.To = ValueTo;
        da.Duration = TimeSpan.FromSeconds(Duration);
        da.AutoReverse = false;

        Windows.UI.Xaml.Media.Animation.Storyboard.SetTargetProperty(da, "opacity");

        Windows.UI.Xaml.Media.Animation.Storyboard.SetTarget(da, target);

        Windows.UI.Xaml.Media.Animation.Storyboard sb = new Windows.UI.Xaml.Media.Animation.Storyboard();
        sb.Children.Add(da);

        EventHandler ehl = null;
        ehl = (s, args) =>
        {

            sb.Stop();
            sb.Completed+= ehl; //error occurs here
            target.Opacity = ValueTo;
        };
        sb.Completed += ehl; //error occurs here

        sb.Begin();
    }
事件处理程序的类型是
EventHandler
,但您声明事件处理程序的类型是
EventHandler
,而不是
EventHandler

这正是错误消息告诉您的,因此您应该将事件处理程序的类型更改为
EventHandler


顺便说一句,事件处理程序中的行
sb.Completed+=ehl;
看起来很奇怪。每次调用事件处理程序时,基本上都会再次将处理程序附加到事件上。

但是上述方法在windows phone中运行良好。它不仅在windows 8应用程序中工作。我甚至尝试了EventHadler,但它不工作。您知道吗如果我将
EventHandler
更改为
EventHandler
,那么上面的原始代码将被编译。当你说“它不工作”时,也许你的意思是别的,但你必须更具体一些。