2011-05-18 87 views
0

我有兩個畫布在網格中,我想要過渡的全景「圖像」,我想知道我將如何去在這兩個畫布控件之間轉換。WP7畫布之間的過渡網格

以編程方式將第一個畫布添加到網格,然後將第二個畫布添加到網格,並刪除第一個,我真正想要做的是在它們之間進行轉換。

關於如何以編程方式實現此目的的任何建議?

謝謝。

編輯:我已經實現了這個方法,但是有問題,任何人都可以告訴我,如果我使用它是錯誤的?

 private void doTransitionIn(Canvas slide) 
    { 
     SlideTransition slideLeft = new SlideTransition(); 
     slideLeft.Mode = SlideTransitionMode.SlideDownFadeIn; 

     ITransition transition = slideLeft.GetTransition(slide); 

     transition.Completed += delegate { transition.Stop(); }; transition.Begin(); 
    } 

    private void doTransitionOut(Canvas slide) 
    { 
     SlideTransition slideLeft = new SlideTransition(); 
     slideLeft.Mode = SlideTransitionMode.SlideDownFadeOut; 

     ITransition transition = slideLeft.GetTransition(slide); 
     transition.Completed += delegate { transition.Stop(); }; transition.Begin(); 
    } 

這裏是我如何使用它:

  SceneGrid.Children.Add(nextCanvas); 
      doTransitionIn(nextCanvas); 
      doTransitionOut(currentCanvas); 
      SceneGrid.Children.Remove(currentCanvas); 

這樣做的問題是,動畫似乎只能從中途開始往下屏幕,如,我只看到它滑動最後20個左右的像素,它不會一路滑動。

回答

0

根據「transition」的含義,我會考慮創建一個StoryBoard來爲每個畫布的隱藏/顯示設置動畫。

+0

故事板工作對我來說,我試過TransitionContentControl,但它似乎沒有時間和發生的一切瞬間的makinga混亂效果。 – Hamid 2011-05-25 14:02:18

0

我會推薦使用TransitioningContentControl,它是Silverlight Toolkit的一部分。要使用此控件,請使用此控件的第一個CanvasContent。要轉換,只需將Content更改爲您的下一個Canvas,然後TransitioningContentControl完成剩下的工作!

有一些博客文章,對這種控制提供教程:

http://blogs.academicclub.org/uidev/2010/06/12/transitioning-content-in-silverlight/

+0

謝謝,這聽起來像是一個合適的解決方案,但是,基於web的silverlight示例對我沒有多大幫助,我似乎找不到任何合適的解決方案。我有可能得到一個例子嗎? – Hamid 2011-05-18 13:18:29

+0

WP7 Silverlight與基於Web的Silverlight具有完全相同的控制。請參閱:http://wildermuth.com/2010/07/16/Bring_Back_Page_Transitions_to_the_Windows_Phone_List_Application_Template – ColinE 2011-05-18 13:38:02

+0

我也看過這篇博客文章,他嵌入了一切。 THeyre所有使用佈局根或頁面本身並沒有真正幫助我理解這是如何工作的。我很希望看到一個示例代碼應用模板/ transitionconstrol /樣式等的畫布/網格(無論我@ m應該執行它)。 – Hamid 2011-05-18 13:54:57