XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESystem

【Rust】XFE系统,基于Rust和汇编

公开
关注 0 Fork 0 Star 0
UTF-8

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 键鼠输入。