我試圖創建一個方法,它需要委託作爲其參數之一,但它不工作。我究竟做錯了什麼?我得到錯誤「回調是一個變量,但像一種方法使用」在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