当ListView中的项目更改位置时,我希望有一个动画,以便它可以缓慢移动到新位置。在模板或代码中。
我试过从(Virtualizing)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)Animate ListView项移动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1317367/