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

时间:2012-08-24 13:43:23

标签: c# .net wpf

我需要以某种方式将double fromH, double toH, UIElement control传递给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();
        }

3 个答案:

答案 0 :(得分:1)

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

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

TypeOftoW toW = MethodThatReturntoWValues();

使用前。

答案 1 :(得分:1)

该方法接受名为totoH的参数,但绝不接受toW。除非它是你班级中的全局变量,否则不会在任何地方声明(如果它是全局的,你就不会收到错误)。

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

答案 2 :(得分:1)

只是几点说明:

  1. 你正在使用一个名为toW的变量(顺便说一句,它本身的命名很差。如果你要使用首字母缩略词作为var名称,在某些情况下使用所有较低或全部大写字母)。无论如何,toW不存在。你可能正在寻找H。
  2. 您应该始终为变量命名,以便不知道代码的人可以阅读和理解它们。
  3. 虽然这是一个合法的名称,但我不会将from用作变量名,因为它也是一个LINQ关键字。