5.4 KiB
5.4 KiB
无人自动洗宠机 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. 视图切换
使用事件机制实现多页面切换:
public event Action<string>? ViewChanged;
三个主要视图:
- Idle(待机)
- Payment(支付)
- Washing(洗护中)
3. 数据绑定
所有UI元素通过数据绑定连接到ViewModel:
Packages- 套餐列表StatusMessage- 状态消息IsDoorOpen- 门状态IsWashing- 洗护状态WashProgress- 洗护进度CurrentStep- 当前步骤RemainingTime- 剩余时间
4. 洗护流程模拟
private async Task SimulateWashingProcessAsync()
{
var steps = new[]
{
("第一次冲水", 120),
("沐浴露喷洒", 30),
("第二次冲水", 180),
("香波喷洒", 30),
("第三次冲水", 180),
("热风吹毛", 300),
("冷热风混合", 120)
};
// ... 执行流程
}
使用流程
用户操作流程
- 待机界面 → 点击"点击开始"
- 支付界面 → 选择套餐 → 确认支付
- 返回待机 → 放入宠物 → 系统提示门已打开
- 关门 → 自动切换到洗护界面
- 洗护进度 → 显示实时进度和步骤
- 完成 → 提示取出宠物 → 返回待机
开发者操作
- 启动后端API服务(PetWash.Api)
- 启动MQTT服务器(可选)
- 运行WPF应用程序
- 系统自动初始化并连接服务
样式资源
所有样式定义在 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
扩展功能
待实现功能
- 参数设置界面 - 配置洗护参数
- 故障诊断界面 - 显示故障日志和诊断信息
- 二维码支付 - 集成真实支付系统
- 实时传感器数据 - 连接真实硬件传感器
- 远程监控 - 云端数据上传
建议改进
- 添加动画效果(页面切换、进度条)
- 添加声音提示
- 多语言支持
- 用户偏好设置
- 历史订单查询
文件结构
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/秒)。
许可证
本项目遵循技术设计文档规范,用于无人自动洗宠机智能控制系统。