# 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 移植规则 1. 沿用紧凑顶部拖动提示、清晰的独立窗口按钮、圆角表面和图标入口的层次。XFESystem 继续使用已有蓝色主题;上述紫色是原项目实际值,不应伪称为新系统蓝色。 2. 标题拖动、双击最大化/还原、右下调整大小必须由系统自己的窗口管理状态驱动,不依赖 WPF、Windows API 或宿主窗口。 3. 最大化矩形以 XFESystem 自己的可用工作区为准,留出顶部系统栏和底部任务栏。还原时保留原尺寸和位置。 4. 从最大化窗口拖动标题时,参考应用先记录指针相对旧窗口的横向比例,再恢复原尺寸,并让对应位置继续位于鼠标下。新系统同样需要避免跳到屏幕左上角。 5. 双击检测必须使用单调时间、同一窗口和小距离容差;释放鼠标、切换窗口或点击标题按钮后需要清理拖动/缩放状态,避免旧捕获继续移动窗口。 6. 右下缩放保留最小尺寸约束,最大化时禁用;用户拖过窗口或屏幕边界时,窗口应保持有效尺寸,命中区与绘制位置一致。 7. 任务栏列出实际打开的窗口,能最小化、恢复和激活;最小化窗口不参与普通绘制/命中,但保留原内容和恢复位置。Alt+Tab 使用稳定的最近使用顺序,Alt 释放后提交选择;Win 键和 Win+D 等入口应通过来宾键盘事件处理。 8. 图片图标由 Imagegen 生成后嵌入来宾资源。文件扩展名决定文件类型图标,应用入口打开对应的真实功能,不把宿主图像文件路径当作来宾文件系统。 9. 指针仍由可缩放的代码几何绘制:线条接合处粗、端点细,箭头尾部较短;文本指针的中柱较粗,横帽由中心向端点渐细;外层蓝色光晕要保持足够面积和对比度。 10. 所有尺寸以逻辑坐标计算,再由画布映射到原生分辨率;改变 UI 缩放不得改变原生扫描输出分辨率。 WPF 的透明窗口、DWM 阴影、系统任务栏、鼠标捕获和桌面快捷键不能直接带入自研内核。实现应分别验证窗口状态、命中、像素绘制与真实 QEMU 键鼠输入。