# Empty 使用文档
本文档介绍 AtomUI Empty 控件的各种使用方式,示例代码摘自 Gallery 演示程序。
> 📖 Gallery 源码位置:`controlgallery/AtomUIGallery/ShowCases/Views/DataDisplay/EmptyShowCase.axaml`
---
## 前置准备
在 AXAML 中使用 Empty,需要引入以下命名空间:
```xml
xmlns:atom="https://atomui.net"
```
在 C# 代码中引入:
```csharp
using AtomUI.Desktop.Controls; // Empty 控件
using AtomUI.Controls; // SizeType、PresetImage 等共享类型
```
---
## 1. 基本用法
最基本的空状态展示,使用默认预设图片:
```xml
```
默认情况下,Empty 控件会:
- 显示彩色的默认预设图片
- 在图片下方显示本地化的描述文字(英文 `"No Data"`,中文 `"暂无数据"`)
- 水平和垂直居中显示
- 使用 `Middle` 尺寸
---
## 2. 简洁模式
Ant Design 中的 `PRESENTED_IMAGE_SIMPLE`,适用于在列表/表格内显示小尺寸空状态:
```xml
```
Simple 模式使用灰色线条图,视觉更轻量,适合作为容器内的内嵌空状态。
---
## 3. 尺寸切换
通过 `SizeType` 属性控制图片大小和描述文字间距:
```xml
```
三种尺寸的具体效果:
| 尺寸 | 图片高度 | 描述文字间距 | 适用场景 |
|---|---|---|---|
| `Small` | 约 35px | 较小 | 表格单元格、紧凑列表 |
| `Middle` | 约 74px | 较小 | 卡片、面板 |
| `Large` | 约 100px | 较大 | 页面级空状态 |
---
## 4. 自定义描述文字
```xml
```
---
## 5. 隐藏描述文字
通过 `IsShowDescription="False"` 隐藏描述文字,仅显示图片:
```xml
```
---
## 6. 自定义图片
### 使用 SVG 文件路径
通过 `ImagePath` 使用打包在应用资源中的自定义 SVG 图片:
```xml
```
> 📖 Gallery 中的自定义图片示例:`controlgallery/AtomUIGallery/ShowCases/Views/DataDisplay/EmptyShowCase.axaml`
### 使用 SVG 内容字符串
通过 `ImageSource` 直接传入 SVG 源码字符串,适合动态生成的图片:
```csharp
// Code-behind
var svgContent = """
""";
myEmpty.ImageSource = svgContent;
```
> ⚠️ **互斥规则**:`PresetImage`、`ImagePath`、`ImageSource` 三者只能设置其中一个。同时设置多个会抛出异常。
---
## 7. 配合额外操作按钮
Ant Design 中 Empty 支持 `children` 插槽放置额外内容(如创建按钮)。AtomUI 中可通过外部组合实现:
```xml
Create Now
```
---
## 8. 在数据容器中使用
### 在 Card 中使用
```xml
```
### 在列表中条件显示
```xml
```
---
## 9. 预设图片类型对比
两种预设图片可通过 `PresetImage` 属性切换:
```xml
```
**选择指南**:
| 场景 | 推荐预设 | 推荐尺寸 |
|---|---|---|
| 页面级空状态(整个页面无内容) | `Default` | `Large` |
| 面板/卡片内空状态 | `Default` 或 `Simple` | `Middle` |
| 表格/列表内嵌空状态 | `Simple` | `Small` 或 `Middle` |
| 下拉选择器空选项 | `Simple` | `Small` |