Terminal.Gui 是适用于 .NET 的跨平台终端 UI 工具包,可在 Windows、Mac 和 Linux/Unix 平台上为 .NET、.NET Core 和 Mono 构建富控制台应用程序。
特性
- 跨平台:支持 Windows、Mac 和 Linux。Curses、Windows 控制台和 .NET 控制台的终端驱动程序意味着应用程序在彩色和单色终端上都能正常运行。
- 键盘和鼠标输入:支持键盘和鼠标输入,包括拖放支持。
- 灵活布局:支持绝对布局和创新的计算布局系统 (Computed Layout)。Computed Layout 使控件之间的相对布局变得容易,并支持动态终端 UI。
- 支持剪贴板:剪切、复制和粘贴通过
Clipboard
类提供的文本。 - 任意视图:所有可见的 UI 元素都是
View
类的子类,而这些子类又可以包含任意数量的 sub-views。 - 高级应用程序功能:主循环支持处理事件、空闲处理程序、计时器和监控文件描述符。大多数类对于 threading 是安全的。
- 响应式扩展 (Reactive Extensions):使用响应式扩展并受益于提高的代码可读性,以及应用 MVVM 模式和 ReactiveUI 数据绑定的能力。
最新发布的 1.8.0 修复了许多问题:
- 修复 #1943:鼠标 ButtonShift 无法保留选中文本的问题
- 将
main
合并到develop
- 确保 isButtonShift flag 在所有情况下都被禁用
- 修复 #1948:Get unwrapped cursor position when word wrap is enabled on TextView
- 在 TextView 上启用 word wrap 功能时,获取 unwrapped 的光标位置
- 修复同步上下文方法 Send 目前是阻塞的问题
- 将 Microsoft.NET.Test.Sdk 从 17.2.0 升级到 17.3.0
- 修复 #1951:选定文本的 TextView 不会滚动到光标位置以外
- 修复 #1953:TextView 光标位置无法通过鼠标更新
详情查看 release note。