ClumsyWinUI —— 由 ClumsyLite 托管的传统 Clumsy 控制台
把原来 ClumsyConsole.exe 的界面(控制面板、车辆配置、驱动编辑器、地图视图、消息日志)
重新编成 net8.0-windows 类库,由 ClumsyLite 在运行时加载。
为什么要单独一个文件
ClumsyLite 必须能在 Linux 上跑,所以它不能在编译期引用 WinForms。WinForms 那部分代码
全部关在本 dll 里,ClumsyLite 只在 Windows 上用反射加载它;Linux 上这个文件根本不会被碰。
安装
放到 ClumsyLite.exe 同级:
ClumsyLite.exe
ClumsyWinUI.dll <- 本文件
照常启动 ClumsyLite,会看到:
WinUI: resolving desktop assemblies from ...\Microsoft.WindowsDesktop.App\8.0.x
WinUI: loaded: ClumsyWinUI on .NET 8.0.x, WinForms available
以及熟悉的 Clumsy Console 窗口。不放这个文件则打印
WinUI: skipped: ClumsyWinUI.dll not found,其余一切照旧。
前置要求
需要装 .NET 8 桌面运行时(不是只有基础运行时)——WinForms 是直接从
Microsoft.WindowsDesktop.App 共享框架里加载的。ClumsyLite 本体只需要基础运行时。
相比 CycleGUI 界面多了什么
ClumsyLite 自己的 RegisterMouseAction / ClearMouseAction 是未实现(直接抛异常),
也就是任何需要操作员在地图上点一下的算法都跑不了。加载 ClumsyWinUI 之后这两个接上了
传统面板的实现,就能用了。输入框和消息框也一并回到传统窗口,避免一次交互被劈在两个界面上。
已知缺口
3D 可视化窗口(MessyEngine)在这里不可用——那个组件是 .NET Framework 的,
net8 下加载不了。需要 3D 请继续用 ClumsyConsole.exe,或者用 ClumsyLite 自带的 CycleGUI 三维视图。