2011-01-05 65 views
5

我正在使用我的ListBoxes中的FluidMoveBehavior的Windows Phone 7應用程序。出於某種原因,FluidMoveBehavior動畫似乎想在不適當的時候激活。目前,我有我的主要頁面上的列表框,我用下面的ItemsPanelTemplate這僅僅是一個基本的StackPanel與連接到它FluidMoveBehavior:觸發FluidMoveBehavior返回導航

<ItemsPanelTemplate x:Key="fancyListBoxItemsPanelTemplate"> 
    <StackPanel> 
     <Custom:Interaction.Behaviors> 
      <il:FluidMoveBehavior AppliesTo="Children"> 
       <il:FluidMoveBehavior.EaseX> 
        <ExponentialEase EasingMode="EaseInOut"/> 
       </il:FluidMoveBehavior.EaseX> 
       <il:FluidMoveBehavior.EaseY> 
        <ExponentialEase EasingMode="EaseInOut"/> 
       </il:FluidMoveBehavior.EaseY> 
      </il:FluidMoveBehavior> 
     </Custom:Interaction.Behaviors> 
    </StackPanel> 
</ItemsPanelTemplate> 

當我添加/刪除項目也能正常工作,而在同一屏幕上。動畫完美播放。但是,當我從主頁面導航到新頁面時,再導航回來,就會觸發流體移動動畫,就像所有項目一次添加一樣。有什麼辦法可以禁用這種行爲,所以它只在列表實際更改時觸發動畫?

+1

我無法重現您的症狀。你使用什麼機制在屏幕之間導航? – 2011-01-06 04:13:51

+0

後退按鈕或GoBack()函數會觸發此行爲。僅供參考,ListBoxes託管在PivotControl中的PivotItems中。當用戶導航回來時,PivotControl以某種方式使佈局無效?也許這是導致行爲被觸發? – 2011-01-06 21:02:57

回答

1

發生這種情況的原因是,當您使用列表框導航到頁面時,會再次創建列表框,類似於在tuns中一次添加所有項,並在tuns中觸發流體移動觸發器。一種可能的(可能不是合法的)解決方案是有兩個相同的ItemPanel模板,一個是行爲模式,另一個是沒有模板。當您第一次導航到頁面時,應用不帶該行爲的模板。稍後用具有行爲的人替換它。 希望有所幫助。