XFEToolBox 桌面设计参考
本文记录 XFESystem C# 桌面改造所使用的本地设计依据,核对日期为 2026-10-14。参考项目只读访问,未启动、构建或修改。参考仓库 HEAD 为 6eec04a4b2ec54dd131cd8ef85522f042bbeff25;仓库已有其他未提交改动,本次未触碰。
参考根目录:C:\Users\XFEstudio\Desktop\work\CSharp\GitHub\XFEstudio\XFEToolBox。
实际设计来源
| 相对参考项目的文件 | 核对内容 |
|---|---|
XFEToolBox.WpfCore/Controls/WindowCaptionBar.xaml |
高度 25 的顶部拖动区、短横线拖动提示、最小化和关闭按钮 |
XFEToolBox.WpfCore/Controls/WindowCaptionBar.xaml.cs |
双击最大化/还原,最大化拖动还原后跟随鼠标,按钮独立命中 |
XFEToolBox.WpfCore/Controls/WindowResizeGrip.xaml |
右下角 25 × 25 的缩放区,最大化时隐藏并禁用命中 |
XFEToolBox.WpfCore/Controls/WindowResizeGrip.xaml.cs |
按鼠标增量改变尺寸,并限制在窗口的 Min/Max 范围内 |
XFEToolBox.WpfCore/Windowing/WindowWorkAreaHelper.cs |
最大化到当前显示器的可用工作区,避开任务栏 |
XFEToolBox.WpfCore/Resources/Style/ToolThemeResources.xaml |
统一主题入口 |
XFEToolBox.WpfCore/Resources/Style/Theme/LightTheme.xaml |
颜色资源 |
XFEToolBox.WpfCore/Resources/Style/WindowChromeStyle.xaml |
拖动条和右下角交互外观 |
XFEToolBox.WpfCore/Resources/Style/StandardControlsStyle.xaml |
按钮、输入控件的尺寸、圆角及状态 |
XFEToolBox/Views/Windows/MainWindow.xaml |
窗口轮廓、导航、标题区域、边距 |
XFEToolBox/Views/Pages/MainPage.xaml |
快速入口卡片、图标槽、分区和文字层次 |
实际查看的原始图像包括 Resources/Image/tabline.png(白色圆头短横线)、corner.png(右下白色三角)、min.png(白色短横线)、close.png(白色圆盘和黑色 X)。未找到单独的窗口截图,以下数字来自源码,不宣称实际运行了参考应用。
参考项目的精确样式
| 资源或布局 | 原始值 |
|---|---|
主色 MainColor |
#9898E7 |
| 窗口侧栏和面板 | #FFFFFF |
| 正文 / 副文 / 禁用文字 | #46465C / #7E7E92 / #AAAABB |
| 控件背景 / 悬停 / 按下 | #FAFAFE / #F1F0FC / #E7E6FA |
| 边线 / 悬停边线 | #DDDDEC / #B9B9E6 |
| 浅强调 / 选中背景 / 分隔线 | #EEEEFC / #E1E1F8 / #E8E8F1 |
| 危险操作颜色 | #BC5966 |
| 主窗口初始 / 最小尺寸 | 730 × 460 / 720 × 450 |
| 外边距 / 主表面圆角 | 5 / 19 |
| 左侧导航宽度 | 180 |
| 顶部拖动条高度 / 下圆角 | 25 / 20 |
| 标题按钮图像宽 / 外边距 | 37 / 4 |
| 右下缩放命中区 | 25 × 25 |
| 普通按钮高度 / 最小宽 / 横向 padding / 圆角 | 36 / 72 / 16 / 11 |
| 主页快速入口卡片高度 / margin / padding / 圆角 | 80 / 4 / 12 / 14 |
| 主页图标槽 / 圆角 / 实际图标 | 38 × 38 / 12 / 24 × 24 |
| 输入框常见圆角 | 10 |
顶部拖动条在默认、悬停、按下时分别使用 #9898E7、#B4B4E9、#CCCCEA,原始过渡时间是 100 ms。右下缩放高亮使用白色 0 / 0.25 / 0.5 的透明度。参考应用的最小化和关闭图像有悬停旋转动画;这是装饰行为,不是窗口管理必需条件。
XFESystem 移植规则
- 沿用紧凑顶部拖动提示、清晰的独立窗口按钮、圆角表面和图标入口的层次。XFESystem 继续使用已有蓝色主题;上述紫色是原项目实际值,不应伪称为新系统蓝色。
- 标题拖动、双击最大化/还原、右下调整大小必须由系统自己的窗口管理状态驱动,不依赖 WPF、Windows API 或宿主窗口。
- 最大化矩形以 XFESystem 自己的可用工作区为准,留出顶部系统栏和底部任务栏。还原时保留原尺寸和位置。
- 从最大化窗口拖动标题时,参考应用先记录指针相对旧窗口的横向比例,再恢复原尺寸,并让对应位置继续位于鼠标下。新系统同样需要避免跳到屏幕左上角。
- 双击检测必须使用单调时间、同一窗口和小距离容差;释放鼠标、切换窗口或点击标题按钮后需要清理拖动/缩放状态,避免旧捕获继续移动窗口。
- 右下缩放保留最小尺寸约束,最大化时禁用;用户拖过窗口或屏幕边界时,窗口应保持有效尺寸,命中区与绘制位置一致。
- 任务栏列出实际打开的窗口,能最小化、恢复和激活;最小化窗口不参与普通绘制/命中,但保留原内容和恢复位置。Alt+Tab 使用稳定的最近使用顺序,Alt 释放后提交选择;Win 键和 Win+D 等入口应通过来宾键盘事件处理。
- 图片图标由 Imagegen 生成后嵌入来宾资源。文件扩展名决定文件类型图标,应用入口打开对应的真实功能,不把宿主图像文件路径当作来宾文件系统。
- 指针仍由可缩放的代码几何绘制:线条接合处粗、端点细,箭头尾部较短;文本指针的中柱较粗,横帽由中心向端点渐细;外层蓝色光晕要保持足够面积和对比度。
- 所有尺寸以逻辑坐标计算,再由画布映射到原生分辨率;改变 UI 缩放不得改变原生扫描输出分辨率。
WPF 的透明窗口、DWM 阴影、系统任务栏、鼠标捕获和桌面快捷键不能直接带入自研内核。实现应分别验证窗口状态、命中、像素绘制与真实 QEMU 键鼠输入。