2012-10-27 46 views
2

我有一個Silverlight 4遊戲,我試圖移植到WinRT。它大量使用Blend的FluidMoveBehavior來爲容器之間的項目轉換(項目從一個容器浮動到另一個容器)進行動畫處理。 WinRT似乎沒有這個功能,我一直無法找到替代品。如何在WinRT中實現容器之間的平滑過渡?

在Silverlight中,此XAML所有這一切:

<ItemsPanelTemplate x:Key="TransitioningPanelTemplate"> 
    <StackPanel Orientation="Horizontal" Margin="0" Background="Transparent"> 
     <i:Interaction.Behaviors> 
      <il:FluidMoveBehavior AppliesTo="Children" Duration="0:0:0.400" Tag="DataContext"> 
       <il:FluidMoveBehavior.EaseY> 
        <BackEase EasingMode="EaseInOut" Amplitude="0.35" /> 
       </il:FluidMoveBehavior.EaseY> 
       <il:FluidMoveBehavior.EaseX> 
        <BackEase EasingMode="EaseInOut" Amplitude="0.35" /> 
       </il:FluidMoveBehavior.EaseX> 
      </il:FluidMoveBehavior> 
     </i:Interaction.Behaviors> 
    </StackPanel> 
</ItemsPanelTemplate> 

我看着轉變的建議in this post,但這似乎只是一個容器內工作。

是否有一些使用Transitions來允許這種行爲?如果沒有,是否有人知道可能的替代方案?

回答

0

試試這個

<ItemsPanelTemplate x:Key="TransitioningPanelTemplate"> 
<StackPanel Orientation="Horizontal" Margin="0" Background="Transparent"> 
    <StackPanel.ChildrenTransitions> 
     <TransitionCollection> 
<Your Transitions /> 
</TransitionCollection> 
</StackPanel.ChildrenTransitions> 
    <i:Interaction.Behaviors> 
     <il:FluidMoveBehavior AppliesTo="Children" Duration="0:0:0.400" Tag="DataContext"> 
      <il:FluidMoveBehavior.EaseY> 
       <BackEase EasingMode="EaseInOut" Amplitude="0.35" /> 
      </il:FluidMoveBehavior.EaseY> 
      <il:FluidMoveBehavior.EaseX> 
       <BackEase EasingMode="EaseInOut" Amplitude="0.35" /> 
      </il:FluidMoveBehavior.EaseX> 
     </il:FluidMoveBehavior> 
    </i:Interaction.Behaviors> 
</StackPanel>