2

我有一个正在尝试移植到 WinRT 的 Silverlight 4 游戏。它大量使用 Blend 的 FluidMoveBehavior 来动画容器之间的项目过渡(项目从一个容器浮动到另一个容器)。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>

我按照这篇文章中的建议查看了转换,但这似乎只能在单个容器中工作。

是否有一些使用允许这种行为的转换?如果没有,是否有人知道可能的替代方案?

4

1 回答 1

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>

于 2012-11-16T08:44:32.927 回答