Files

5.5 KiB
Raw Permalink Blame History

ImagePreviewer API 参考

命名空间

  • C#:AtomUI.Desktop.Controls
  • AXAML:xmlns:atom="https://atomui.net"

公共类

类名 说明
AbstractImagePreviewer 图片预览基类,定义图片源、对话框和缩放相关属性
ImagePreviewer 单图预览控件,展示封面 + 遮罩,点击弹出预览
ImageGroupPreviewer 多图组预览控件,展示多张缩略图,点击弹出预览
ImageFitToWindowEventArgs 适应窗口事件参数(IsFitToWindow 属性)

枚举类型

DialogHorizontalAnchor(来自 AtomUI.Desktop.Controls.DialogPositioning)

值 说明
Custom 自定义偏移(默认)
Left 左对齐
Center 水平居中
Right 右对齐

DialogVerticalAnchor(来自 AtomUI.Desktop.Controls.DialogPositioning)

值 说明
Custom 自定义偏移(默认)
Top 顶部对齐
Center 垂直居中
Bottom 底部对齐

公共属性(StyledProperty)

AbstractImagePreviewer — 核心属性

属性名 类型 默认值 说明
ItemsSource IList<string>? null 图片路径列表(支持 avares:// 和本地路径),自动检测 .svg 后缀走 SVG 渲染
FallbackImageSrc string? null 容错图片路径,当 ItemsSource 为空或加载失败时使用
IsOpen bool false 预览对话框是否打开。可双向绑定以编程方式控制对话框
IsMotionEnabled bool 由 SharedToken.EnableMotion 控制 是否启用过渡动画(IMotionAwareControl)
CoverWidth double double.NaN 封面宽度。NaN 时跟随图片原始宽度或父容器宽度
CoverHeight double double.NaN 封面高度。NaN 时跟随图片原始高度或父容器高度
CurrentIndex int 0 当前预览图片的索引(从 0 开始)

AbstractImagePreviewer — 预览窗口属性

属性名 类型 默认值 说明
IsImageMovable bool true 是否允许鼠标拖拽移动图片(缩放后有效)
ImageScaleStep double 0.5 缩放步进比例(0.5 = 每次缩放 50%)
ImageMinScale double 1.0 最小缩放倍数
ImageMaxScale double 50.0 最大缩放倍数
IsDialogModal bool false 是否以模态方式打开预览对话框。模态时阻塞主窗口交互
DialogHorizontalStartupLocation DialogHorizontalAnchor Custom 对话框水平初始位置锚点
DialogVerticalStartupLocation DialogVerticalAnchor Custom 对话框垂直初始位置锚点
DialogHorizontalOffset Dimension? null 对话框水平偏移量(仅 Custom 定位时生效)
DialogVerticalOffset Dimension? null 对话框垂直偏移量(仅 Custom 定位时生效)
CustomDialogPlacementCallback CustomDialogPlacementCallback? null 自定义对话框位置计算回调
IsDialogTopmost bool false 预览对话框是否置顶显示

ImagePreviewer — 封面属性

属性名 类型 默认值 说明
CoverImageSrc string? null 自定义封面图路径。未设置时自动使用 ItemsSource 的首张图
CoverIndicatorContent object? null 遮罩指示器的内容对象
CoverIndicatorContentTemplate IDataTemplate? 默认模板(眼睛图标 + 本地化 "Preview" 文字) 遮罩指示器的内容模板
IsShowCoverMask bool true 是否显示封面悬浮遮罩

ImageGroupPreviewer — 布局属性

属性名 类型 默认值 说明
ItemsPanel ITemplate<Panel?> StackPanel (Horizontal) 封面缩略图的布局面板模板

公共方法

方法名 返回值 说明
OpenDialog() void 编程方式打开预览对话框。若对话框已打开则无操作
CloseDialog() void(protected virtual) 编程方式关闭预览对话框。会触发 DialogClosing 事件,可被取消

公共事件

事件名 类型 说明
DialogOpened EventHandler? 预览对话框打开后触发
DialogClosed EventHandler? 预览对话框关闭后触发
DialogClosing EventHandler<CancelEventArgs>? 预览对话框即将关闭时触发。设置 Cancel = true 可阻止关闭

伪类

ImagePreviewer 和 ImageGroupPreviewer 本身不定义自定义伪类。内部组件使用的伪类:

伪类 控件 触发条件
:pointerover ImagePreviewerCover 鼠标悬浮在封面上,触发遮罩淡入动画
:pointerover ImagePreviewNavButton 鼠标悬浮在导航按钮上,背景加深
:disabled ImagePreviewNavButton 到达首张/末张图片时导航按钮禁用
:disabled 工具栏 IconButton 缩放到极限时缩小/放大按钮禁用
:pressed 工具栏 IconButton 按钮被按下

实现的接口

接口 定义位置 说明
IMotionAwareControl AtomUI.Controls 支持 IsMotionEnabled 过渡动画开关

本地化资源

资源键 en_US zh_CN 使用位置
Preview "Preview" "预览" 封面遮罩指示器默认文字

键盘交互

按键 说明
← (Left) 切换到上一张图片(多图模式时)
→ (Right) 切换到下一张图片(多图模式时)