gpt4 book ai didi

c# - 无法将类型 'System.EventHandler' 隐式转换为 'System.EventHandler'
转载 作者:太空宇宙 更新时间:2023-11-03 11:06:29 24 4
gpt4 key购买 nike

我试图在指定时间内淡出一个文本框。此代码适用于 Windows Phone,但不适用于 Windows 8 应用程序。我进行了更改以修复尽可能多的错误。但我无法解决其中一个问题:cannot implicitly convert type 'System.EventHandler' to 'System.EventHandler<object>"出现在表达式 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();
}

最佳答案

Completed event 的类型是EventHandler<object> ,但您声明事件处理程序的类型为 EventHandler ,而不是 EventHandler<object> .

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

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

关于c# - 无法将类型 'System.EventHandler' 隐式转换为 'System.EventHandler<object>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15675528/

24 4 0