优化了Windows端剪贴板历史记录中的图片预览功能,解决了之前图片显示为Base64文本的问题。
- 文件:
ClipSync.WPF/Converters/ImagePreviewConverter.cs - 功能: 将Base64编码的图片数据转换为WPF的BitmapImage对象
- 特性:
- 支持多值绑定(Content + Format)
- 异常处理确保安全
- 使用Freeze()提高性能
- 文件:
ClipSync.WPF/UI/Views/HistoryView.xaml - 改进:
- 为图片类型添加了专门的缩略图显示区域(80x60像素)
- 使用DataTrigger根据ContentType动态切换显示内容
- 文本内容显示"Image (format)"而不是Base64字符串
- 优化了ListView的虚拟化设置提升性能
- 改进了空状态的自动显示/隐藏逻辑
- 文件:
ClipSync.WPF/App.xaml - 改动: 添加了ImagePreviewConverter的资源引用
- 文件:
ClipSync.WPF/UI/ViewModels/HistoryViewModel.cs - 改进:
- 支持图片类型的复制到剪贴板
- 添加了异常处理
- 正确处理Base64到BitmapImage的转换
<!-- 文本内容 -->
<DataTrigger Binding="{Binding ContentType}" Value="text">
<Setter Property="Text" Value="{Binding Content}"/>
</DataTrigger>
<!-- 图片内容 -->
<DataTrigger Binding="{Binding ContentType}" Value="image">
<Setter Property="Text" Value="️ Image ({Binding Format})"/>
</DataTrigger>- 尺寸: 80x60像素
- 填充方式: UniformToFill(保持比例并裁剪)
- 圆角: 使用SmallRadius
- 背景: ImageBrush绑定到转换器
- 启用ListView虚拟化
- BitmapImage使用OnLoad缓存选项
- 图片对象Freeze()避免跨线程访问问题
- 视觉反馈: 图片现在以缩略图形式显示,直观清晰
- 信息展示: 显示图片格式而不是冗长的Base64文本
- 交互一致: 点击复制按钮可以正确复制图片到剪贴板
- 性能提升: 虚拟化确保大量历史记录时依然流畅
- 复制不同类型的图片(PNG、JPG等)
- 验证缩略图正确显示
- 测试复制功能是否正常工作
- 检查大量历史记录时的滚动性能
- 验证空状态的正确显示
- 添加图片点击放大预览功能
- 支持图片下载保存
- 优化大图加载性能(渐进式加载)
- 添加图片格式图标区分