-4

我需要以某种方式传递 double fromH, double toH, UIElement control给 of 中的AnimateH方法,sb.Completed但我得到了错误

当前上下文问题中不存在名称“toW”

等等..

我该如何解决?

谢谢!

 void AnimateTop(double from, double to, double fromH, double toH, UIElement control)
        {
            Debug.WriteLine("EFM - AnimateTop - from: " + from.ToString() + " to: " + to.ToString());
            Storyboard sb = new Storyboard();
            DoubleAnimation da = new DoubleAnimation();
            da.From = from;
            da.To = to;
            da.Duration = new Duration(TimeSpan.FromSeconds(1));
            sb.Children.Add(da);
            Storyboard.SetTargetProperty(da, new PropertyPath("(Canvas.Top)"));
            Storyboard.SetTarget(da, control);
            sb.Completed += (w, r) => 
            { 
                AnimateH(fromW, toW, control); // Here is the error
                control.UpdateLayout(); 
            };
            sb.Begin();
        }
4

3 回答 3

1

您正在使用toW,但它没有在任何地方声明或作为参数传递

如果它是来自其他地方的值,则应作为参数传递。如果它是从那里的某个方法创建的值,您应该声明类型并获取它的值

TypeOftoW toW = MethodThatReturntoWValues();

在使用它之前。

于 2012-08-24T13:44:59.083 回答
1

该方法接受名为toand的参数toH,但从不接受toW. 除非它是您类中的全局变量,否则不会在任何地方声明它(如果它是全局变量,您将不会收到错误)。

您还应该看到类似的错误fromW,因为它在当前上下文中也不存在(另外,除非它是全局的)。

于 2012-08-24T13:45:45.330 回答
1

只是一些注意事项:

  1. 您正在使用一个名为 toW 的变量(顺便说一下,它本身的命名非常糟糕。如果您要使用首字母缩略词作为 var 名称,请在某些情况下使用全部小写或全部大写)。无论如何,toW 不存在。您可能正在寻找 toH.
  2. 您应该始终命名变量,以便不知道代码的人可以阅读和理解它们。
  3. 虽然它是一个合法名称,但我不会from用作变量名,因为它也是一个 LINQ 关键字。
于 2012-08-24T13:50:04.527 回答