(WPF)Animate ListView项目移动

Lee*_*ver 7 wpf animation listview

我希望在ListView中的项目改变位置时有动画,因此它会慢慢移动到新位置.在模板或代码中.我尝试从(虚拟化)StackPanel下载并重写ArrangeOverride来重新定位和动画项目.问题是我不知道该项目在更新之前的位置,所以我可以很好地过渡到新的位置.我尝试检查项目的TranslateTransform,存储在字典中,覆盖OnItemChanged并存储OldPosition/Position ..但是没有一个工作,因为它似乎总是重新创建项目(来自模板).

还有其他建议吗?

小智 6

使用FluidMoveBehavior行为,它将使您的生活更轻松.

您可以通过以下方式将此应用于任何itemscontrol

<ItemsPanelTemplate x:Key="ItemsPanelTemplate">
            <WrapPanel>
                <i:Interaction.Behaviors>
                    <il:FluidMoveBehavior AppliesTo="Children" Duration="00:00:00.75"/>
                </i:Interaction.Behaviors>
            </WrapPanel>
</ItemsPanelTemplate>
Run Code Online (Sandbox Code Playgroud)

您可以在与Blend 3一起安装的Microsoft.Expression.Interactions.dll中找到此行为