mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-28 14:20:47 +08:00
55 lines
3.7 KiB
Markdown
55 lines
3.7 KiB
Markdown
# AtomUI.Controls.Shared 模块概览
|
||
|
||
`AtomUI.Controls.Shared` 是控件共享契约和跨控件基础能力模块。它依赖 `AtomUI.Core` 和 `AtomUI.Generator`,RootNamespace 为 `AtomUI.Controls`。
|
||
|
||
## 职责
|
||
|
||
- 提供控件通用接口,例如尺寸、状态、方向、操作系统感知、Header/Content 等共享契约。
|
||
- 提供异步加载协调器,统一搜索类和展开类控件的 debounce、超时、取消、去重行为。
|
||
- 提供集合视图能力,支撑排序、分组、过滤和虚拟化上下文。
|
||
- 提供上传调度、媒体断点、WaveSpirit 等跨控件系统。
|
||
|
||
## 关键目录
|
||
|
||
| 目录 | 说明 |
|
||
|---|---|
|
||
| `AsyncLoad/` | `AsyncSearchLoadCoordinator`、`AsyncExpandLoadCoordinator`、加载结果状态 |
|
||
| `Data/ListCollectionViews/` | 列表集合视图、排序、分组、过滤描述 |
|
||
| `Net/` | 文件上传调度与传输接口 |
|
||
| `MediaQuery/` | 媒体断点和响应式布局支持,规则见 [响应式架构](../../architecture/systems/control-infrastructure/responsive.md) |
|
||
| `WaveSpirit/` | 点击波纹/动效扩展 |
|
||
| `Converters/`、`Utils/` | 控件共享工具 |
|
||
|
||
## 相关专题
|
||
|
||
- [Control 基础设施架构](../../architecture/systems/control-infrastructure/overview.md)
|
||
- [异步加载使用指南](../../guides/control-infrastructure/async-loading.md)
|
||
- [过滤使用指南](../../guides/control-infrastructure/filtering.md)
|
||
|
||
## 图片加载职责
|
||
|
||
Shared 拥有统一图片系统的完整 engine 与公共数据契约:`ImageLoader.cs`、`ImageLoaderStore.cs`、Source/Request/Result/Error/
|
||
Progress、Builder options、两级请求合并、下载/解码调度、encoded/decoded/file cache、HTTP transport、source readers、内容
|
||
校验、raster codec,以及 SVG 的安全 XML/CSS/data raster、复杂度和一致性模式验证及集中 security policy version。所有文件位于单层
|
||
`src/AtomUI.Controls.Shared/ImageLoading/`;不创建 `Application/`、`Runtime/` 或 `Internal/` 子目录。
|
||
|
||
该模块只依赖 Core 提供的通用 owned-service 生命周期。它不引用 `AtomUI.Controls`,不包含 Avatar fallback、AsyncImage Theme、
|
||
Previewer Current/Cover/Preload 策略,也不引用 `Svg.Controls.Avalonia` 或通过反射发现上层 codec。Controls 使用显式 Builder
|
||
调用把统一 `SvgImageCodec` 注册到同一个应用 loader;Shared 只向 codec 交付当前安全策略已经验证的不可变字节和 metadata。
|
||
`SvgContentValidator` 明确拥有三层判断:不可关闭的安全边界、应用级有界资源预算,以及默认 `Compatible`/可选 `Strict` 的格式
|
||
一致性策略。第一版两种模式只在重复 `id` 上不同;兼容模式仍按元素出现位置建立完整引用图,不能跳过深度、环或复杂度检查。
|
||
模式在 Application loader 构建时冻结,不进入 `ImageRequestOptions`,Shared 不公开 per-request 开关或任意 validator delegate。
|
||
|
||
API、文件布局与引擎规则见:
|
||
|
||
- [统一图片加载系统](../../architecture/systems/image-loading/overview.md)
|
||
- [公共契约](../../architecture/systems/image-loading/public-contracts.md)
|
||
- [控件 API](../../architecture/systems/image-loading/control-apis.md)
|
||
- [管线、并发与生命周期](../../architecture/systems/image-loading/pipeline-and-lifecycle.md)
|
||
- [缓存、HTTP 与内容安全](../../architecture/systems/image-loading/caching-and-security.md)
|
||
- [网络 SVG 加载](../../architecture/systems/image-loading/network-svg.md)
|
||
- [平台、性能与 AOT](../../architecture/systems/image-loading/platforms-and-aot.md)
|
||
- [验证与完成门禁](../../architecture/systems/image-loading/verification.md)
|
||
|
||
过滤专题中的部分实现位于 `AtomUI.Desktop.Controls`,但统一契约和共享数据结构属于本模块的重要背景。
|