前段时间项目需要WPF分页控件,百度了许久,也没有找到一个合适的开源控件,不是太丑,就是封装的控件无法使用,最后决定自己写一个。
写的时候,参照百度搜索分页对传统分页控件做了简化。细致地看了下百度搜索分页功能,百度分页控件默认是10页(如果结果列表小于10页,则显示实际页数),除了10个页面元素外,最左和最右两侧各有一个按纽,即前一页和后一页;
- 传统分页控件中有首页和末页功能,百度弃之;
- 传统分页控件中有分页容量设置功能,百度弃之;
- 传统分页控件中有输入页码跳转功能,百度亦弃之;
这么多功能都没有,这个分页能好用嘛,又仔细研究,于是发现一个小秘密,百度分页的10个小页面元素,以第6个为中心,当点击任一个页码,会将该页码从当前位置移动到第6个位置,从起始到结束位置的其他页码都顺延移动,这样一来,在分页导航的过程中,使用起来确实也很方便,最大程序减少了点击次数,也简化了操作,不需要忆和分别那么多功能,想分页,就click。这种简化的背后,其实暗含了细致的用户使用行为分析,即一个人在使用分页的过程中,因为通常不太会记得或者知道自己的想要的要素在哪一页,更倾向于按顺序查看各页,因此列出10个页加上click当然是最简单又能满足需求的方式,通过一个移动选中页到中心位置,实际上一次点击,加载多个可能想看的页面,使10个页面的范围尽量扩大,避免了频繁点击[前一页]、[后一页]的无聊操作,这样一来,即使功能大大简化,但使用起来似乎更方便了。一个小小的功能,都能看出用心可贵。
闲话不多说,看下控件真身:
再看下百度的:
是不是很像,哈哈,自己做的,美工还欠点;
上代码:
XAML就不上了,后面直接提供个下载的;
.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
usin