UI组件概览
目录
介绍
ColorVision 的 UI 层采用模块化设计,由多个独立的组件库组成。每个组件都有特定的职责和功能,共同构建了完整的用户界面系统。本文档提供了 UI 目录下所有组件的概览和详细说明。
组件架构
核心组件列表
基础层组件
1. ColorVision.Common
- 功能: 通用框架基础封装
- 职责: 提供 MVVM 模式支持、命令封装和接口定义
- 版本: 1.5.1.2
- 目标框架: .NET 8.0 / .NET 10.0
- 关键特性:
- MVVM 架构支持
- ActionCommand/RelayCommand 命令封装
- 通用接口定义(IConfig, IMenuItem, IWizardStep 等)
2. ColorVision.Core
- 功能: 核心功能接口封装
- 职责: 提供 C++ 接口封装和 OpenCV 原生集成
- 版本: 1.5.2.1
- 目标框架: .NET 8.0 / .NET 10.0
- 关键特性:
- 底层 C++ 接口封装
- OpenCV 原生库集成(4.13)
- 高性能视频解码支持
- 核心算法接口
功能层组件
3. ColorVision.Database
- 功能: 数据库辅助控件
- 职责: 数据库访问和管理的UI控件
- 关键特性:
- 数据库连接管理UI
- SQL查询界面
- 数据表格显示控件
4. ColorVision.ImageEditor
- 功能: 图像编辑控件库
- 职责: 专业级图像显示、编辑、标注、分析和视频播放
- 版本: 1.5.1.1
- 目标框架: .NET 8.0 / .NET 10.0
- 关键特性:
- RGB48 高精度图像支持
- 丰富的绘图工具(矩形、圆形、贝塞尔曲线等)
- 图像翻转(水平/垂直)和旋转
- 色彩调整和图像处理算法
- 伪彩色映射(21 种色彩方案,LUT 优化,上下限模式)
- 视频播放(MP4/AVI/MKV/MOV/WMV/FLV/WebM)
- 3D 可视化和直方图分析
5. ColorVision.Scheduler
- 功能: 定时任务管理控件
- 职责: 基于Quartz.Net的任务调度管理
- 关键特性:
- 可视化任务管理界面
- 复杂的Cron调度策略
- 实时任务监控和日志
- 任务执行历史记录
6. ColorVision.SocketProtocol
- 功能: 网络通信协议封装
- 职责: Socket通信的UI控件和协议管理
- 关键特性:
- 网络连接状态显示
- 协议数据可视化
- 通信日志界面
业务层组件
7. ColorVision.Solution
- 功能: 解决方案管理
- 职责: 项目和解决方案的创建、打开和管理
- 版本: 1.5.1.1
- 目标框架: .NET 8.0 / .NET 10.0
- 关键特性:
- 解决方案创建和打开
- 项目管理界面
- 文件树导航
- 最近文件管理
- 权限管理集成(RBAC)
- 停靠面板布局管理(DockLayoutManager)
- 多图像查看器和缩略图缓存
- 工作区管理
8. ColorVision.UI
- 功能: 底层UI控件库和系统服务
- 职责: 提供应用程序UI基础设施
- 关键特性:
- 菜单管理和动态菜单支持
- 配置系统和设置界面
- 多语言支持和国际化
- 热键系统和快捷键管理
- 属性编辑器PropertyGrid
- 日志系统和权限管理
- 插件加载和管理机制
主题层组件
9. ColorVision.Themes
- 功能: 主题和样式管理
- 职责: 提供多种预设主题和自定义UI控件
- 关键特性:
- 多主题支持(系统、深色、浅色、粉色、青色)
- ApplyTheme 动态主题切换
- 自定义控件(消息框、进度对话框、通知窗口等)
- 主题资源管理
组件依赖关系
依赖层级说明
- 基础层: ColorVision.Common 作为基础,被所有其他组件依赖
- 功能层: 各功能组件独立,但都依赖基础层
- 业务层: ColorVision.UI 集成多个功能层组件,提供统一的应用框架
- 主题层: ColorVision.Themes 为 UI 层提供视觉支持
使用指南
1. 新项目集成
xml
<!-- 在项目中引入核心组件 -->
<PackageReference Include="ColorVision.Common" Version="1.5.1.2" />
<PackageReference Include="ColorVision.UI" Version="1.5.1.1" />
<PackageReference Include="ColorVision.Themes" Version="1.5.1.1" />2. 基础应用设置
csharp
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
// 读取配置
ConfigHandler.GetInstance();
// 设置权限
Authorization.Instance = ConfigService.Instance.GetRequiredService\<Authorization\>();
// 设置日志级别
LogConfig.Instance.SetLog();
// 设置主题
this.ApplyTheme(ThemeConfig.Instance.Theme);
// 设置语言
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(LanguageConfig.Instance.UICulture);
// 设置窗口可拖动
MainWindow.MouseLeftButtonDown += (s, ev) =>
{
if (ev.ButtonState == MouseButtonState.Pressed)
MainWindow.DragMove();
};
}
}3. 功能组件使用
xml
<!-- 图像编辑器 -->
<cv:ImageView x:Name="imageView"
Source="{Binding ImageSource}"
ZoomMode="Fit"
ShowGrid="True" />
<!-- 属性编辑器 -->
<ui:PropertyGrid SelectedObject="{Binding CurrentObject}"
ShowCategories="True" />
<!-- 任务调度器 -->
<scheduler:SchedulerMonitorPanel DataContext="{Binding SchedulerViewModel}" />4. 主题应用
xml
\<Application.Resources\>
\<ResourceDictionary\>
\<ResourceDictionary.MergedDictionaries\>
<ResourceDictionary Source="pack://application:,,,/ColorVision.Themes;component/Themes/Dark.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>开发建议
1. 架构原则
- 单一职责: 每个组件专注于特定功能
- 低耦合: 组件间通过接口交互
- 高内聚: 相关功能集中在同一组件内
- 可扩展: 支持插件和自定义扩展
2. 最佳实践
- MVVM模式: 使用 ColorVision.Common 提供的 ViewModelBase
- 命令绑定: 使用 ActionCommand 和 RelayCommand
- 配置管理: 通过 IConfig 接口统一配置
- 主题支持: 使用 ColorVision.Themes 保持视觉一致性
3. 性能考虑
- 按需加载: 只加载必要的组件
- 资源释放: 及时释放不需要的资源
- 异步操作: 长时间操作使用异步处理
- 内存管理: 避免内存泄漏和过度消耗
4. 扩展开发
自定义组件
csharp
public class CustomComponent : UserControl
{
// 继承基础控件实现自定义功能
}插件开发
csharp
public class CustomPlugin : IPlugin
{
public string Name => "Custom Plugin";
public void Initialize() { /* 初始化逻辑 */ }
public void Shutdown() { /* 清理逻辑 */ }
}主题扩展
csharp
public class CustomTheme : ITheme
{
public string Name => "Custom";
public ResourceDictionary GetResourceDictionary() { /* 返回主题资源 */ }
}版本兼容性
当前版本
- 稳定版本: 1.5.x
- 目标框架: .NET 8.0 / .NET 10.0 Windows
- 最低系统要求: Windows 10 1903+
- 多语言支持: 简体中文、English、Français、日本語、한국어、Русский、繁體中文
升级指南
- 检查依赖项版本
- 更新NuGet包引用
- 检查API变更
- 测试核心功能
- 验证主题和样式
