当我在 Visual Studio 中移动到一行上的不同位置时,我注意到光标的粗细发生了变化。我并不是指进入插入模式,或者更改操作系统或 VS 本身的任何设置。
如果光标位于两个空白字符之间、空白字符与非空白字符之间或多个非空白字符之间(例如位于变量名称的中间),则会出现相同的光标粗细变化。
经过有限的调查,即使文件关闭并重新打开或重新启动 Visual Studio,文件中的相同位置似乎也具有相同的厚度。
我当前运行的是 2022 年版本 17.6.2,但我相信这种行为并不是该版本独有的。
下面是从同一行代码中截取的两个屏幕截图。
此行为似乎仅发生在文本编辑器中。输出窗口、搜索窗格、立即窗口和命令窗口等位置都显示正常的锐光标。
如果我在编辑器中放大到 380%,光标在我看来仍然略有不一致,但不一致的程度较小。
似乎在某个时刻,Visual Studio 编辑器视图中的文本渲染器发生了更改。您现在可以在选项→文本编辑器→高级→文本格式化方法下切换渲染模式:
通过选择“显示”(如屏幕截图中所示),您可以获得像素调整的渲染。然后,每一列中的光标都将相同(以及蓝点和字符等等)。
(这些选项对应于TextFormattingMode枚举。)
引用这篇旧博客文章关于差异:
最重要的部分是:这确保每个字形具有多个完整像素的宽度并且位于完整像素上。
我个人的观点:理想的渲染在高 PPI 下看起来很棒(想想“Retina”显示器)。96 PPI 的表现很糟糕。