询问者
wpf能够实现类似手机qq那种下拉刷新呢

问题
全部回复
-
你好 wpf萌新:
WPF自带控件并不能满足你的要求,你可以尝试自己实现或者寻找第三方控件。
下拉刷新的功能重点在“下拉”,因为刷新只需要触发就行了,下拉则涉及到交互、效果、动画等方面,比较麻烦。
我曾经实现过这样的下拉功能,并且尝试过几种方式:
1.自定义面板(继承自Panel),自行控制子元素布局(ArrangeOverride),响应Touch事件来更新布局;使用数学函数来模拟边界阻尼,使用动画模拟回弹效果。
2.将ListBox置入面板/内容控件,未达到边界时Touch影响ListBox内部滚动,到达边界时Touch影响ListBox在其父级元素中的位置;同样使用数学函数来模拟边界阻尼,使用动画模拟回弹效果。
3.重写ListBox模板,模板中使用的逻辑类似于2。
这三种方式我都尝试过并投入使用。由于我之前的需求是开发触屏程序,因此响应的都是Touch事件;按你的需求,你可以响应Mouse事件来模拟相关的效果。
个人建议:在qq之前,iOS和安卓就已经在系统中大量使用了这种效果。之所以在智能手机上这样的下拉效果非常流行,是因为触摸操作天生带有“手势”,其中滑动手势是直观、便利且常用的手势。在触屏操作中使用一个滑动手势来替代多个按钮(上移/下移/刷新)是非常优秀的交互设计;但是对于鼠标操作而言:滚轮比拖拽更加适于内容滚动,按钮也比拖拽更加适于刷新。