none
wpf能够实现类似手机qq那种下拉刷新呢 RRS feed

  • 问题

  • 如上图,感觉是一个listbox,右边还有滑动条,但windows上的listbox拉动到边界就不能继续拉了

    这种效果是如何实现的呢,用wpf能在windows上用鼠标模拟这种向下滑动的操作吗

    2016年6月14日 2:14

全部回复

  • 嵌入一个web browser控件,里面浏览的内容是一个网页,QQ空间里也有这种效果


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年6月14日 2:56
  • 不太明白你的意思,我是在window平台上做app,用的wpf开发

    接触web方面比较少有没有例子可以参考下呢

    2016年6月14日 5:14
  • 你好 wpf萌新:

    WPF自带控件并不能满足你的要求,你可以尝试自己实现或者寻找第三方控件。

    下拉刷新的功能重点在“下拉”,因为刷新只需要触发就行了,下拉则涉及到交互、效果、动画等方面,比较麻烦。

    我曾经实现过这样的下拉功能,并且尝试过几种方式:

    1.自定义面板(继承自Panel),自行控制子元素布局(ArrangeOverride),响应Touch事件来更新布局;使用数学函数来模拟边界阻尼,使用动画模拟回弹效果。

    2.将ListBox置入面板/内容控件,未达到边界时Touch影响ListBox内部滚动,到达边界时Touch影响ListBox在其父级元素中的位置;同样使用数学函数来模拟边界阻尼,使用动画模拟回弹效果。

    3.重写ListBox模板,模板中使用的逻辑类似于2。

    这三种方式我都尝试过并投入使用。由于我之前的需求是开发触屏程序,因此响应的都是Touch事件;按你的需求,你可以响应Mouse事件来模拟相关的效果。

    个人建议:在qq之前,iOS和安卓就已经在系统中大量使用了这种效果。之所以在智能手机上这样的下拉效果非常流行,是因为触摸操作天生带有“手势”,其中滑动手势是直观、便利且常用的手势。在触屏操作中使用一个滑动手势来替代多个按钮(上移/下移/刷新)是非常优秀的交互设计;但是对于鼠标操作而言:滚轮比拖拽更加适于内容滚动,按钮也比拖拽更加适于刷新。

    2016年6月14日 7:44
  • 谢谢,我对动画这块不熟,能给我发个例子参考下么,即使不用也想学习学习
    2016年6月14日 7:55
  • 你好 wpf萌新:

    找了一下以前的代码,还好有一部分有留档:

    链接: http://pan.baidu.com/s/1pLw6hDL 密码: yrdw

    这只是测试代码,想真正投入使用还需要进一步完善。

    刚刚加了一些代码,使其支持鼠标,但损失了一些特性(如惯性)。

    由于这些代码年代久远(约2年前),因此可能有一些不恰当的语法和用法,请自行甄别。


    • 已建议为答案 DotNet Wang 2016年6月28日 5:23
    • 已编辑 Lymim 2016年7月1日 5:25
    2016年6月14日 8:49
  • 非常感谢,我研究研究再跟你交流
    2016年6月14日 15:39