gpt4 book ai didi

c# - 为什么 Trackbar 值在向上箭头/PgUp 上减少?

转载 作者:行者123 更新时间:2023-11-30 17:55:40 26 4
gpt4 key购买 nike

我在 Trackbar Winforms 控件中偶然发现了一个有趣的行为。

在水平轨迹栏上,左/右箭头键按预期工作。 (向左箭头将 slider 向左移动并减小值,向右箭头则相反)也可以使用向上/向下箭头键和 PageUp/PageDown 来操纵 slider 。然而,这种行为似乎有悖常理:向上箭头和向上翻页将 slider 向左移动,从而降低了值。向下箭头和向下翻页将 slider 向右移动并增加值。

当使用垂直轨迹栏时,向上/向下键按预期工作,但向左箭头 = 增加,向右箭头 = 减少。

这是 C# Winforms 中的默认行为,显然在 native Windows 中也是如此。 (不确定后者,UAC 的 slider 确实以这种方式工作)

在 WPF 中, slider 控件“正常”工作,即值随着向上箭头、向右箭头和 PgUp 增加。Internet Explorer 隐私设置中的 slider 也能正常工作。不知道为什么,但我怀疑是对键的自定义处理。

从人体工程学的角度来看,显然向上、向右、向前和顺时针操作任何东西都应该增加值(value)。 (这没什么新鲜的,比较A Guide to Human Factors and Ergonomics, Second Edition Page 100)

现在回答我的问题:有人知道为什么会这样吗?

最佳答案

我强烈认为选择此行为是为了使轨迹栏控件与滚动条控件保持一致。

这两个控件有很多共同点(它们的拇指可以按“行”或“页”增量移动,两个控件都可以水平或垂直布局,都使用 WM_HSCROLLWM_VSCROLL 来通知它们的父级当拇指位置改变时)。

从控件的角度来看,拇指可以“向上”或“向下”移动(分别为“左”或“右”)。滚动条的键盘导航使用 LeftUp 向上(向左)移动,以及 RightDown用于向下(向右)运动。

trackbar 控件遵循相同的约定一定是有意义的,因此习惯了滚动条控件实现的开发人员可以将相同的原则应用于 trackbar 控件。

关于c# - 为什么 Trackbar 值在向上箭头/PgUp 上减少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14831694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com