WPF - Jumpy/jittery 滑块控件导致 "BringIntoView" 出现问题
WPF - Jumpy/jittery slider control causing problems with "BringIntoView"
我有一个框架元素需要时刻关注。为此,我在 BringIntoView()
超出范围时使用它。但是,我注意到 BringIntoView()
不能很好地处理快速度。当 UI 被快速操作时(在我的例子中它是一个包含选择器的时间轴),BringIntoView()
似乎无法跟上。当时间轴中的选择器快速移动到容器边界之外时,BringIntoView()
将(表面上)尝试通过将选择器移动到离边界很远的地方来预测这种速度。
Instead of a smooth scrolling effect that takes place when the selector is moved slowly, instead what we get is a jittery scroll with the selector constantly going back and forth between being at the edge of the container and in the middle of它。就好像它无法处理速度,并放弃尝试通过将框架元素尽可能远离容器边界来进行精确移动。
我不知道 BringIntoView()
是如何工作的,但我想要类似的东西,它可以预测与框架元素的定位相比需要滚动的距离。还有类似“BringIntoView()
”的吗?
经过大量搜索,我发现了这个线程:
消除滑块中 jittery/jumpy 行为的解决方案与 "BringIntoView()" 完全无关,而是与控件后面双向值绑定的速度有关。将 Delay=1
添加到绑定中可以消除控件中的任何抖动行为。它实质上为双向绑定增加了 1 毫秒的延迟,从而为 UI 留出时间进行相应的更新。
有一个权衡;由于 1 毫秒的延迟,UI 不那么平滑。但这是一个小小的牺牲,至少对我来说是这样。
我有一个框架元素需要时刻关注。为此,我在 BringIntoView()
超出范围时使用它。但是,我注意到 BringIntoView()
不能很好地处理快速度。当 UI 被快速操作时(在我的例子中它是一个包含选择器的时间轴),BringIntoView()
似乎无法跟上。当时间轴中的选择器快速移动到容器边界之外时,BringIntoView()
将(表面上)尝试通过将选择器移动到离边界很远的地方来预测这种速度。
Instead of a smooth scrolling effect that takes place when the selector is moved slowly, instead what we get is a jittery scroll with the selector constantly going back and forth between being at the edge of the container and in the middle of它。就好像它无法处理速度,并放弃尝试通过将框架元素尽可能远离容器边界来进行精确移动。
我不知道 BringIntoView()
是如何工作的,但我想要类似的东西,它可以预测与框架元素的定位相比需要滚动的距离。还有类似“BringIntoView()
”的吗?
经过大量搜索,我发现了这个线程:
消除滑块中 jittery/jumpy 行为的解决方案与 "BringIntoView()" 完全无关,而是与控件后面双向值绑定的速度有关。将 Delay=1
添加到绑定中可以消除控件中的任何抖动行为。它实质上为双向绑定增加了 1 毫秒的延迟,从而为 UI 留出时间进行相应的更新。
有一个权衡;由于 1 毫秒的延迟,UI 不那么平滑。但这是一个小小的牺牲,至少对我来说是这样。