用途:SharpConsoleUI 是 .NET 终端应用框架,用于构建交互式 TUI,如仪表盘、向导、设置界面、管理/监控控制台;既支持全屏单窗口(.Frameless() + .Maximized()),也支持带拖拽、缩放、最小化、最大化、z-order、焦点路由、模态窗口和鼠标支持的多窗口桌面。不适用于纯行式 CLI、参数解析或非交互脚本。
主要能力:基于差异单元格缓冲的无闪烁渲染,适合 SSH;提供数据表格、树/列表视图、表单、内嵌 PTY 终端、Markdown、图表、视频等控件;支持 NativeAOT 就绪的控制台应用。
使用方式:通过 NuGet 安装 dotnet add package SharpConsoleUI,目标框架 net8.0、net9.0、net10.0。创建 NetConsoleDriver(RenderMode.Buffer) 与 ConsoleWindowSystem,用 WindowBuilder 构建窗口,window.AddControl(Controls.*) 添加控件,绑定控件事件(如 Button.OnClick),调用 windowSystem.AddWindow(window) 后 windowSystem.Run() 启动渲染/输入循环,windowSystem.Shutdown() 退出。布局可用 GridControl 的固定、自适应或 Star 比例轨道。
限制:这是保留模式应用框架,不适合一次性 Console.WriteLine 输出;采用协作式单线程 UI 模型,禁止阻塞 UI 线程或在异步中 .Result/.Wait(),跨线程修改控件需用 EnqueueOnUIThread/InvokeAsync;TerminalControl 仅支持 Linux 和 Windows 10 1809+,Linux 需在 Main 首行调用 PtyShim.RunIfShim(args);高级媒体会按终端能力降级;NativeAOT 支持但需确认自身反射/序列化代码安全,HtmlControl 是已知 AOT 注意事项。具体版本、收费与更多平台细节暂未提供。