所以我正在使用 C# 和 Cosmos 开发一个操作系统。它叫做孟菲斯,我希望它现在完全是命令行的(如 DOS)。
但是,我见过的大多数命令行操作系统(Arch、DOS 等)都具有控制台库之类的东西,可以让您创建带有按钮、菜单、输入等的简单 UI。
我已经尝试过自己写,但完全是徒劳的。我可以在屏幕上绘制一个窗口和文本,但仅此而已(我确实有一个基本的窗口管理器,它可以工作但没有,你按 Tab 在窗口之间切换,左/右选择按钮等输入,文本框等,它确实接受键盘输入,我可以看到窗口正在更新,但尽管代码理论上可以工作,但实际上没有任何改变)
所以我正在寻找一种方法让我在我的操作系统的控制台上绘制 UI,但它必须完全管理,并且只能使用 System.Console 中的内容。它也不能包含事件。这是因为,Cosmos 只能使用 100% 托管的代码,并且 System.Console 在 Cosmos 中几乎完全实现,当 Cosmos 的 IL2CPU 汇编器尝试转换已编译的 c# 代码时,事件会抛出“OpCode Mkrefany not yet implemented”到 x86 ASM。