⼀.前⾔
申明:WPF⾃定义控件与样式是⼀个系列⽂章,前后是有些关联的,但⼤多是按照由简到繁的顺序逐步发布的等,若有不明⽩的地⽅可以参考本系列前⾯的⽂章,⽂末附有部分⽂章链接。
本⽂主要内容:
ScrollViewer的样式拆解及基本样式定义;ListBox集合控件的样式定义;
⼆.ScrollViewer⾃定义样式
ScrollViewer在各种列表、集合控件中⼴泛使⽤的基础组建,先看看效果图:
如上图,ScrollViewer简单来说分两部分,⼀个横向的滚动条,⼀个垂直滚动条,两个样式、模板、功能都基本⼀样,他们都是ScrollBar。以垂直滚动条为例,分解⼀下,分解图:
1:向上滑动的按钮,⽤RepeatButton实现功能;
2:上部分滑块,功能同1,也是⼀个RepeatButton来实现的;3:中间可拖动滑块,⽤⼀个Thumb来实现;
4:下部分滑块,和5功能⼀样,向下滑动,⽤⼀个RepeatButton来实现;5:向下滑动的按钮,⽤RepeatButton实现功能;
上⾯实现的是⼀个标准的垂直滑动条ScrollBar组成,实际可⽤根据需求定制,实现不同效果的滑动效果。以上各部分的样式代码:
View Code
最后ScrollViewer的样式如下,其实就是两个 ScrollBar组成:
使⽤很简单,如果想通⽤,把上⾯定义的ScrollViewer设置为默认样式即可:
三.ListBox样式定义
ListBox是最基础、常⽤的集合控件,效果:
ListBox的样式⽐较简单,包括两部分:ListBoxItem项的样式;ListBox的样式;完整代码:
ListBox默认是⽀持虚拟化的,当加载⼤数据时需要开启虚拟化,或者定义⼀个虚拟化的样式:
上⾯演⽰效果的代码⽰例:
另外提供⼀个⽐较常⽤的需求,ListBox单选RadioButton效果样式,如上图右边的那个ListBox效果:
附录:参考引⽤
个⼈能⼒有限,本⽂内容仅供学习、探讨,欢迎指正、交流。
因篇幅问题不能全部显示,请点此查看更多更全内容