wpf - (WPF) 动画 ListView 项目移动

标签 wpf listview animation

我希望在 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/

相关文章:

wpf - 模态对话框未显示在其他窗口之上

wpf - 将文本框的文本属性绑定(bind)到 MainWindow-WPF 上定义的变量

asp.net - 从 .ascx 动态加载 ListView 模板

ios - 如何使用 view.frame 和 view.center 将两个 View 居中

java - 如何在没有 Opengl ES 的情况下为对象制作动画?

c# - 在 View 模型中检索 IDataErrorInfo 字符串结果

c# - 在 Visual Studio 中的 WPF 项目上找不到本地数据库

android - 我可以在另一个 Activity 中更新一个 Activity 中的 ListView 吗?

xaml - Xamarin 表单 : How can I make an Image Circle in a ListView?

iOS 3D动画: Issues when rotating multiple superposed views