我希望在 ListView 中的项目更改位置时有一个动画,这样它就会慢慢移动到新位置。无论是在模板中还是在代码中。 我尝试从(虚拟化)StackPanel 下降并覆盖 ArrangeOverride 来重新定位项目并为其设置动画。问题是我不知道该项目在更新“之前”处于什么位置,因此我可以很好地过渡到新位置。我尝试检查项目的 TranslateTransform、存储在字典中、覆盖 OnItemChanged 并存储 OldPosition/Position ..但这些都不起作用,因为项目似乎总是重新创建(从模板)。
还有其他建议吗?
最佳答案
使用FluidMoveBehavior行为,它会让你的生活变得更加轻松。
您可以通过以下方式将其应用于任何项目控件
<ItemsPanelTemplate x:Key="ItemsPanelTemplate">
<WrapPanel>
<i:Interaction.Behaviors>
<il:FluidMoveBehavior AppliesTo="Children" Duration="00:00:00.75"/>
</i:Interaction.Behaviors>
</WrapPanel>
</ItemsPanelTemplate>
您可以在随 Blend 3 一起安装的 Microsoft.Expression.Interactions.dll 中找到此行为
关于wpf - (WPF) 动画 ListView 项目移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1317367/