# 无人自动洗宠机 WPF 界面实现说明 ## 概述 本项目实现了符合技术设计文档要求的深蓝科技风格WPF界面,包含完整的用户交互流程和视觉设计。 ## 设计特点 ### 1. 深蓝科技风格 - **背景色**: #0F3A7D (深蓝色渐变) - **文字色**: #E8F0FF (浅灰白色,高对比度) - **强调色**: #00D4FF (青蓝色,用于按钮和数据显示) - **成功色**: #00FF88 (绿色,用于正常状态) - **警告色**: #FFB800 (橙色) - **错误色**: #FF4444 (红色) ### 2. 视觉效果 - LED指示灯效果(带发光阴影) - 科技感按钮(带青蓝色光晕) - 数字显示采用等宽字体(Consolas) - 所有面板带有微光边框效果 ### 3. 界面布局 #### 待机界面 (IdleView) - 显示系统标题 - 硬件状态指示(水泵、加热、风干、门锁) - 实时数据显示(水温、水位、运行时间) - 大型"点击开始"按钮 - 底部状态栏 #### 支付界面 (PaymentView) - 套餐列表展示 - 每个套餐显示:名称、描述、时长、价格 - 点击套餐卡片即可选择 - 返回按钮 #### 洗护进度界面 (WashingView) - 当前步骤大字显示 - 剩余时间倒计时 - 总体进度条(带发光效果) - 流程步骤列表(显示当前进行到哪一步) - 底部实时数据(水温、水位、门状态) - 紧急停止按钮 ## 技术实现 ### 1. MVVM架构 - **View**: MainWindow.xaml - **ViewModel**: MainViewModel.cs - **Model**: Package, Order ### 2. 视图切换 使用事件机制实现多页面切换: ```csharp public event Action? ViewChanged; ``` 三个主要视图: - Idle(待机) - Payment(支付) - Washing(洗护中) ### 3. 数据绑定 所有UI元素通过数据绑定连接到ViewModel: - `Packages` - 套餐列表 - `StatusMessage` - 状态消息 - `IsDoorOpen` - 门状态 - `IsWashing` - 洗护状态 - `WashProgress` - 洗护进度 - `CurrentStep` - 当前步骤 - `RemainingTime` - 剩余时间 ### 4. 洗护流程模拟 ```csharp private async Task SimulateWashingProcessAsync() { var steps = new[] { ("第一次冲水", 120), ("沐浴露喷洒", 30), ("第二次冲水", 180), ("香波喷洒", 30), ("第三次冲水", 180), ("热风吹毛", 300), ("冷热风混合", 120) }; // ... 执行流程 } ``` ## 使用流程 ### 用户操作流程 1. **待机界面** → 点击"点击开始" 2. **支付界面** → 选择套餐 → 确认支付 3. **返回待机** → 放入宠物 → 系统提示门已打开 4. **关门** → 自动切换到洗护界面 5. **洗护进度** → 显示实时进度和步骤 6. **完成** → 提示取出宠物 → 返回待机 ### 开发者操作 1. 启动后端API服务(PetWash.Api) 2. 启动MQTT服务器(可选) 3. 运行WPF应用程序 4. 系统自动初始化并连接服务 ## 样式资源 所有样式定义在 `Resources/Styles.xaml`: ### 按钮样式 - `TechButton` - 主要按钮(带发光效果) - `SecondaryTechButton` - 次要按钮(透明背景) ### 面板样式 - `TechPanel` - 科技风面板(带边框和阴影) ### 文本样式 - `TitleTextBlock` - 标题(36pt,带发光) - `SubtitleTextBlock` - 副标题(22pt) - `BodyTextBlock` - 正文(16pt) - `DataTextBlock` - 数据显示(28pt,等宽字体) - `DigitalDisplay` - 数字显示(48pt,带发光) ### 其他样式 - `LEDIndicator` - LED指示灯 - `TechProgressBar` - 进度条 ## 响应式设计 ### 屏幕尺寸 - 默认: 1024x800 (适合7-10寸工控屏) - 全屏无边框模式 - 所有触摸元素 ≥ 60x60px ### 字体大小 - 标题: 36pt - 副标题: 22pt - 正文: 16pt - 数据: 28-48pt ## 扩展功能 ### 待实现功能 1. **参数设置界面** - 配置洗护参数 2. **故障诊断界面** - 显示故障日志和诊断信息 3. **二维码支付** - 集成真实支付系统 4. **实时传感器数据** - 连接真实硬件传感器 5. **远程监控** - 云端数据上传 ### 建议改进 1. 添加动画效果(页面切换、进度条) 2. 添加声音提示 3. 多语言支持 4. 用户偏好设置 5. 历史订单查询 ## 文件结构 ``` PetWashControl/ ├── Views/ │ ├── MainWindow.xaml # 主界面 │ └── MainWindow.xaml.cs # 主界面代码 ├── ViewModels/ │ └── MainViewModel.cs # 主视图模型 ├── Models/ │ ├── Package.cs # 套餐模型 │ └── Order.cs # 订单模型 ├── Services/ │ ├── ApiService.cs # API服务 │ ├── MqttClientService.cs # MQTT服务 │ ├── ConfigurationService.cs # 配置服务 │ └── LogService.cs # 日志服务 ├── Resources/ │ └── Styles.xaml # 样式资源 ├── Converters/ │ └── BoolToStatusConverter.cs # 值转换器 └── App.xaml # 应用程序入口 ``` ## 依赖项 - .NET 8.0 - CommunityToolkit.Mvvm - MQTTnet - System.Text.Json ## 运行要求 - Windows 10/11 - .NET 8.0 Runtime - 分辨率: 1024x800 或更高 - 触摸屏支持(可选) ## 调试模式 在开发模式下,支付流程会弹出确认对话框而不是显示二维码,洗护流程会加速执行(100ms/秒而不是1000ms/秒)。 ## 许可证 本项目遵循技术设计文档规范,用于无人自动洗宠机智能控制系统。