\

In the cone of light, all is fate

WPF按钮控制滚动条

这个写法的思路来源于做UE4时的某些功能,比如鼠标拖动地面移动视角这样的功能,为了让视角移动时有顺滑的效果,往往在鼠标左键的映射事件中对某变量进行处理,然后在Tick中每帧地去使用此变量设置相机的位置。

按照这个思路,我们在点击向上或向下按钮时会改变一个bool变量的值,然后在定时器中当这个变量为true时则对一个意义为滚动条当前位置的变量加或减偏移量,当然这里要限制范围。

使用以下方法设置位置 :

滚动条所在元素.ScrollToVerticalOffset(当前位置)

 

定时器的频率设为10比较好。

 

每个按钮都有3个事件,分别是按下,抬起,离开。

比如在向上按钮的点击事件中:

IsUp = true;
IsDown = false;
m_timer.Stop();
m_timer.Start();

其他事件是类似的,根据实际情况写就行。

如果有其他的滚动条操作方式存在,那每次改变当前位置的变量时要把此变量赋值为当前滚动条益。

当前位置 = 滚动条所在元素.VerticalOffset;

  

 

posted @ 2020-12-11 10:31  Ymrt  阅读(721)  评论(0编辑  收藏  举报