2012-08-24 63 views
-3

我需要某種方式的sb.Completed內通過double fromH, double toH, UIElement controlAnimateH方法,但我得到了錯誤名稱「拖」不存在當前上下文問題存在

名稱「拖」不在當前情況下存在問題

和等。

我要如何解決?

謝謝!

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(); 
     } 

回答

1

您使用toW,但它沒有任何地方宣佈 或參數

如果它是來自另一個地方的值過去了,你應該作爲參數傳遞。如果是從某種方法創建的值,則應在使用它之前聲明類型並獲得其值

TypeOftoW toW = MethodThatReturntoWValues(); 

+0

哦,該死的!正確!謝謝!! –

1

該方法正在接受名爲totoH的參數,但從未使用toW。除非它是你的類中的全局變量,否則不會在任何地方聲明(如果它是全局變量,則不會收到錯誤)。

您應該也會看到類似的錯誤fromW,因爲它不存在於當前上下文中(另外,除非它是全局的)。

1

就在幾個注意事項:

  1. 您使用的是被稱爲TOW(其中的方式非常本身並命名不佳變量如果你要使用首字母縮寫爲VAR名稱,使用所有。在一些情況下,較低或全部大寫)。無論如何,toW不存在。你可能正在尋找toH。
  2. 你應該總是命名你的變量,以便不知道代碼的人可以閱讀和理解它們。
  3. 雖然它是一個合法名稱,但我不會使用from作爲變量名稱,因爲它也是一個LINQ關鍵字。
相關問題