【发布时间】:2012-12-28 04:15:53
【问题描述】:
我正在尝试创建一个将委托作为其参数之一但它不起作用的方法。我究竟做错了什么?我在windowAnimation.Completed += new EventHandler(callback) 的行上收到错误“回调是一个变量,但用作方法”。
private void animateWindowWidth(Window window, double width, double duration, Delegate callback)
{
window.BeginInit();
window.Dispatcher.BeginInvoke(new Action(() =>
{
DoubleAnimation windowAnimation = new DoubleAnimation();
windowAnimation.Duration = new Duration(TimeSpan.FromSeconds(duration));
windowAnimation.From = window.Width;
windowAnimation.To = width;
windowAnimation.FillBehavior = FillBehavior.HoldEnd;
windowAnimation.Completed += new EventHandler(callback);
window.BeginAnimation(Window.WidthProperty, windowAnimation);
}), null);
window.EndInit();
}
【问题讨论】:
-
让我建议更优雅的 (imo) 语法:
Dispatcher.BeginInvoke((Action)(() => { }); -
谢谢。有什么不同?它只是同一件事的捷径吗?
-
没有区别,据我所知,只是口味问题,正如我从一开始就强调的那样 :)
标签: c# .net wpf animation delegates