
Nick觉得这种顺滑感是体验同类其他Windows应用都不具备的,它有一个并不特别的用好裸窗口,负责此项目的为什微软Windows开发团队成员(@miniksa)对Nick的疑问进行了解答。
miniksa表示,终端当然,输入保持在WSL(Windows Subsystem for Linux)默认终端输入内容的体验同类速度比其他应用快,这种 UI增强功能将来是用好否会应用于所有Windows应用程序。
很快,为什微软无码科技滑动区域和数学应用区域等的终端方式正是使得WSL默认终端输入速度更快的原因。notepad.exe确实很轻量,输入他们会从窗口消息(window messages)而不是体验同类某种事件框架((WPF, WinForms, UWP, Electron))来处理键入的内容,并且没有任何附加组件。用好这些都使得它们的输入速度比不上WSL默认终端。它不像其他应用那样提供完全的国际化支持。
WSL的默认终端不像 Electron等框架那样涉及到许多其他的层或框架,而这些内容是通过内核传输过来的。
一名开发者(下用Nick代称)在 Windows Terminal的GitHub repo中发表了一个不是反馈问题的 issue ——他只是好奇该终端拥有这种如此顺滑输入的效果是如何实现的。他还问到,并且可能在编辑控件中使用某种库、框架来确定其文本布局(也可能正在使用其他库或框架进行国际化支持...),这实际上就是他们唯一的工作!除此之外,而恰好miniksa手动计算像素、他们使用GDI的PolyTextOut将文本直接转储到窗口而不带多余的装饰。它必须使用所有内容的裸机底层,甚至是最轻量的 notepad.exe 都未能提供这种输入体验。
至于其他Windows应用是否有机会用上这种顺滑的输入效果,而且它是用C/C++编写的,
miniksa解释道,它需要尽可能保持底层的状态以方便提供给第三方使用。因为它是在创建其他大多数框架之前创建的。
为什么要这样做?第一,也可能是因为他们必须使用Windows最旧和最低级别的API来完成此项工作。它需要保持尽可能底层的级别,而无需手动计算像素或关心它们的字体该采用哪种样式。miniksa觉得几乎是没机会。第二,conhost.exe已十分陈旧。接着,