Windows 滚动条快捷键的简史
摘要
本文探讨了 Windows 中滚动条快捷键的历史,详细介绍了鼠标操作和上下文菜单,并回顾了不同 UI 框架如何实现这些功能,指出生态系统碎片化的问题。
暂无内容
查看缓存全文
缓存时间: 2026/09/23 18:59
# Windows 滚动条快捷键简史 - The Old New Thing
来源:https://devblogs.microsoft.com/oldnewthing/20260922-00/?p=112719/
在 Windows 发展的二十年间,滚动条控件只提供少数基本操作。(为便于说明,这里假设滚动条是垂直方向的。)其共有五个鼠标操作区域:滚动条两端的箭头可逐行滚动;滑块与箭头之间的区域可按页滚动;而滑块本身则允许你拖动到特定位置。
Windows 7 为滚动条添加了右键菜单。该菜单包含四个与现有鼠标操作对应的选项、两个与现有键盘操作对应的选项,以及一个全新操作。
菜单选项 鼠标操作 键盘操作
滚动至此 拖动滑块到指定位置 Home(跳至起始位置)
拖动滑块到起始位置 End(跳至结束位置)
拖动滑块到末尾位置 Page Up(向上翻页)
向上翻页 点击上方轨道区域 PgUp
向下翻页 点击下方轨道区域 PgDn
向上滚动 点击向上箭头 ↑
向下滚动 点击向下箭头 ↓
其中最有趣的是“滚动至此”功能:你可以直接在目标位置右键单击,然后选择“滚动至此”。这在需要长距离滚动时极为便利,因为无需先抓取滑块再拖动到目的地。你只需关注想跳转的位置,而不必在意当前位置。
我在需要大跨度跳转时经常使用这个右键菜单。
同一时期还加入了一个更隐蔽的快捷键:**按住 Shift 键点击滚动条**可直接跳转到点击位置。
我直到最近才知道这个快捷操作。以前一直依赖那个可靠的右键菜单。
可惜如今几乎无人再使用 Win32 原生滚动条。所有框架都提供了自定义滚动条实现。
Electron 等 Web 应用采用 Chromium 滚动条,虽未实现右键菜单,但至少支持 Shift+点击 快捷键。
WPF XAML 框架似乎同时实现了右键菜单和 Shift+点击 功能。
令人沮丧的是,WinUI XAML 框架既未提供右键菜单也不支持 Shift+点击。(不过已有人提出相关请求 https://github.com/Microsoft/microsoft-ui-xaml/issues/11200)。
Qt 框架提供多个自定义接口,因此实际行为取决于应用开发者:可通过 `SH_ScrollBar_ContextMenu` 启用右键菜单,通过 `SH_ScrollBar_LeftClickAbsolutePosition` 启用“左键点击跳转”,通过 `SH_ScrollBar_MiddleClickAbsolutePosition` 启用“中键点击跳转”。
可叹当我刚了解滚动条的 Shift+点击 快捷键时,生态系统已如此碎片化,以致无法确保其普遍可用。
### 分类
### 主题
## 作者
Raymond Chen
Raymond 参与 Windows 演进已逾三十年。2003 年他创办了名为 The Old New Thing 的博客,其受欢迎程度远超想象,这一发展至今仍让他感到不安。该博客后来衍生出同名著作(Addison Wesley 2007年出版)。他偶尔会出现在 Windows 开发文档推特账号上,讲述些并无实用信息的故事。
相似文章
Windows UI 演变:点击未关联的文件
历史回顾:从 Windows 386 到 Windows XP,Windows 操作系统打开未关联文件的用户界面如何演变,展示了对话框的演进以及 Web 服务提示的引入。
CMD+K快速切换器的发明奇史
本文探讨了CMD+K快速切换器的历史和发明,这是一个在许多应用程序中用于快速导航的普遍键盘快捷键。
五年后,Windows 11 带回备受怀念的任务栏选项(以及更多)
Windows 11 最新的 Insider Preview 版本恢复了将任务栏停靠到屏幕任意边缘的功能,该功能自发布以来被移除,同时还带来了其他 UI 改进。
Windows 11 Notepad 中的糟糕菜单栏
文章批评 Windows 11 Notepad 中的菜单栏存在多个错误和退化,包括鼠标和键盘导航问题,与较旧的 Win32 版本相比。
Windows 11 测试可调整任务栏和可调整大小的开始菜单
Microsoft 正在最新的 Windows 11 Insider 版本中测试可移动的任务栏和可调整大小的开始菜单,允许用户将任务栏放置在屏幕的任意一侧,并调整开始菜单的大小和部分。