2012-11-17 58 views
1

基本上,我在頁面上有幾個按鈕,當用戶單擊其中一個按鈕時,應用程序必須運行動​​畫,然後導航到第二個頁面,其名稱爲存儲在查詢字符串中的按鈕如何在運行動畫後導航到另一頁

private void Button1_Click(object sender, RoutedEventArgs e) 
     { 
      myAnimation.Begin(); 
      myAnimation.Completed += new EventHandler(myAnimation_Completed); 

     } 

     void myAnimation_Completed(object sender, EventArgs e) 
     { 
      //If Button1 was clicked 
      NavigationService.Navigate(new Uri("/nextPage.xaml?id=Button1",UriKind.Relative)); 

      //If Button2 was clicked 
      NavigationService.Navigate(new Uri("/nextPage.xaml?id=Button2",UriKind.Relative)); 

      //etc 
     } 

我不知道什麼條件我可以用於IF語句。

編輯:管理人更改事件聲明來解決導航問題

myAnimation.Completed += new EventHandler((a,b) => MyAnimation_complete(sender, e)); 

但現在我有麻煩航行回來,當我從第二頁點擊後退按鈕,我去的第一頁,但我在那裏找不到控件。注意「MyAnimation」只是一個過渡動畫也可能有幫助。

回答

1

爲什麼不使用lambda表達式

private void Button1_Click(object sender, RoutedEventArgs e) 
    { 
     myAnimation.Begin(); 
     myAnimation.Completed += (s,ev)=> 
      { 
      NavigationService.Navigate(new Uri("/nextPage.xaml?id=Button1",UriKind.Relative)); 
      }; 

    } 

samething爲Button2的

+0

爲什麼以這種方式進行導航會導致無法使用後退按鈕導航回到上一頁? – KillaKem

+0

我認爲它更好地創建下一頁的實例,看看它是否工作,所以'NavigationService.Navigate(new nextPage(Button1));', – S3ddi9

+0

使用lambda表達式完美!,我無法回到上一頁,因爲我的動畫將所有控件移出頁面。 – KillaKem

1

只需創建按鈕是否1點擊其設置爲true和false,如果按鈕2(或一些詮釋,如果你有多個按鈕)布爾變量

+1

但後來我不得不做出一個INT全局變量:(難道真的沒有其他辦法嗎?我討厭在我的代碼中使用全局變量。 – KillaKem

+0

@KillaKem,它不是全局變量,而只是類的私有成員 - 使用它們並不違反任何OOP規則。 –

2

你可以嘗試:

myAnimation。完成+ =新的EventHandler((發件人,E)=> MyAnimation_complete(發件人,E);

通過這種方式,你可以從你的電子可變讓你infromation,並處理您的按鈕,這樣

。個
+0

謝謝!將第一個「(sender,e)」更改爲隨機變量名稱(如a,b)時適用。 I.E myAnimation.Completed + = new EventHandler((a,b)=> MyAnimation_complete(sender,e)); – KillaKem

+0

@KillaKem如果此作品請將其標記爲答案,因此可能對其他人有用 –

相關問題