WPF按钮控制滚动条
这个写法的思路来源于做UE4时的某些功能,比如鼠标拖动地面移动视角这样的功能,为了让视角移动时有顺滑的效果,往往在鼠标左键的映射事件中对某变量进行处理,然后在Tick中每帧地去使用此变量设置相机的位置。
按照这个思路,我们在点击向上或向下按钮时会改变一个bool变量的值,然后在定时器中当这个变量为true时则对一个意义为滚动条当前位置的变量加或减偏移量,当然这里要限制范围。
使用以下方法设置位置 :
滚动条所在元素.ScrollToVerticalOffset(当前位置)
定时器的频率设为10比较好。
每个按钮都有3个事件,分别是按下,抬起,离开。
比如在向上按钮的点击事件中:
IsUp = true; IsDown = false; m_timer.Stop(); m_timer.Start();
其他事件是类似的,根据实际情况写就行。
如果有其他的滚动条操作方式存在,那每次改变当前位置的变量时要把此变量赋值为当前滚动条益。
当前位置 = 滚动条所在元素.VerticalOffset;