gpt4 book ai didi

WPF ListView 动画通过项目重新排序?

转载 作者:行者123 更新时间:2023-12-02 09:01:07 25 4
gpt4 key购买 nike

我想做一些几年前在 WPF 演示中看到的事情。我不知道它是如何完成的,但我知道它可以完成,所以这就是我的问题。

在演示中,有一个带有 ListView 或 ListBox 的 WPF 应用程序,其中包含很多项目。每个 ListView 都被重新排序,列表中的项目更改了位置。但 ListView 不仅被刷新,事实上还有一个项目移动到新位置的动画。

这个应用程序非常酷,现在这正是我所需要的。我们计划做一个实时数据排名应用程序,这种动画将是完美的。

但我的团队中没有人知道如何做到这一点。我正在考虑 ObservableCollection 和数据绑定(bind),但其余的对我来说完全是个谜。

任何提示或想法都会有很大的帮助。我确信已经有人这么做了。当 WPF 刚刚出现时,我亲眼所见,但我不知道从哪里开始寻找。

最佳答案

还可以进行自定义面板。查理关于压倒性布局的说法非常正确。要创建自定义面板,您主要必须重写从 System.Windows.Controls.Panel 继承的 MeasureOverrideArrangeOverride 方法。

This project CodeProject 上演示了几个自定义面板,您可以在其中研究它们的动画方式。当一个人从一行的末尾移动到另一行的开头时,FanPanel 会以动画方式重新定位项目,反之亦然。

This tutorial还在 ArrangeOverride 中演示了开始动画。

我还没有尝试过,但您也可以使用排名值以及自定义 ValueConverter 将排名转换为位置,以便在 Canvas 。不过,自定义面板会更好,它允许您更改排名数据上使用的 DataTemplate 并让每个面板告诉 Panel 他们想要多高是(假设它们垂直排列)。

关于WPF ListView 动画通过项目重新排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1207376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com