我试图创建一个方法,它需要委托作为其参数之一,但它不工作。我究竟做错了什么?我得到错误“回调是一个变量,但像一种方法使用”在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)(()=> {});' – abatishchev
谢谢。有什么不同?它只是一个捷径, – Aaron
据我所知,没有什么区别,只是一个味道的问题,正如我从开始强调:) – abatishchev