mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-19 06:58:57 +08:00
4.5 KiB
4.5 KiB
Result API 参考
命名空间
- 基类(设备无关):
AtomUI.Controls.Commons(AbstractResult) - 桌面端控件:
AtomUI.Desktop.Controls(Result) - 枚举:
AtomUI.Controls(ResultStatus) - AXAML:
xmlns:atom="https://atomui.net"
类定义
// 设备无关基类
namespace AtomUI.Controls.Commons;
public abstract class AbstractResult : ContentControl { ... }
// 桌面端控件
namespace AtomUI.Desktop.Controls;
public class Result : AbstractResult { ... }
// 状态枚举
namespace AtomUI.Controls;
public enum ResultStatus
{
Info,
Success,
Error,
Warning,
ErrorCode404,
ErrorCode403,
ErrorCode500
}
公共属性(StyledProperty)
以下属性全部定义在 AbstractResult 基类中,Result 通过继承直接获得。
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Status |
ResultStatus |
ResultStatus.Info |
结果状态类型,决定显示的图标/插画和颜色 |
Header |
object? |
null |
标题内容,支持文本字符串或自定义控件 |
HeaderTemplate |
IDataTemplate? |
null |
标题的数据模板 |
SubHeader |
object? |
null |
副标题内容,支持文本字符串或自定义控件 |
SubHeaderTemplate |
IDataTemplate? |
null |
副标题的数据模板 |
Extra |
object? |
null |
额外操作区内容(通常放置按钮),使用 [DependsOn(nameof(ExtraTemplate))] |
ExtraTemplate |
IDataTemplate? |
null |
额外操作区的数据模板 |
Icon |
PathIcon? |
null |
自定义图标,仅对 Info/Success/Warning/Error 状态有效 |
HeaderFontSize |
double |
0 |
标题字体大小(由 Token 自动设置) |
SubHeaderFontSize |
double |
0 |
副标题字体大小(由 Token 自动设置) |
Content |
object? |
null |
子内容区域(继承自 ContentControl),展示在结果区域底部 |
ContentTemplate |
IDataTemplate? |
null |
子内容的数据模板(继承自 ContentControl) |
属性依赖关系
Extra属性使用[DependsOn(nameof(ExtraTemplate))]标记Header属性使用[DependsOn(nameof(HeaderTemplate))]标记SubHeader属性使用[DependsOn(nameof(SubHeaderTemplate))]标记
内部属性(Internal)
以下属性为框架内部使用,不对外公开:
| 属性 | 类型 | 说明 |
|---|---|---|
RelativeHeaderLineHeight |
double |
标题相对行高系数(从 SharedToken 绑定) |
RelativeSubHeaderLineHeight |
double |
副标题相对行高系数(从 SharedToken 绑定) |
HeaderLineHeight |
double |
标题实际行高(= RelativeHeaderLineHeight × HeaderFontSize) |
SubHeaderLineHeight |
double |
副标题实际行高(= RelativeSubHeaderLineHeight × SubHeaderFontSize) |
StatusIcon |
PathIcon? |
当前状态对应的图标实例(DirectProperty,根据 Status 自动计算) |
枚举类型
ResultStatus
namespace AtomUI.Controls;
public enum ResultStatus
{
Info, // 一般信息提示
Success, // 操作成功
Error, // 操作失败/错误
Warning, // 需要注意/警告
ErrorCode404, // 页面未找到
ErrorCode403, // 无权限访问
ErrorCode500 // 服务器错误
}
状态与默认图标映射
ResultStatus |
默认图标 | 来自 |
|---|---|---|
Info |
ExclamationCircleFilled |
AtomUI.Icons.AntDesign |
Success |
CheckCircleFilled |
AtomUI.Icons.AntDesign |
Warning |
WarningFilled |
AtomUI.Icons.AntDesign |
Error |
CloseCircleFilled |
AtomUI.Icons.AntDesign |
ErrorCode403 |
SVG 插画 (ResultIndicator.UnauthorizedImageSource()) |
内嵌资源 |
ErrorCode404 |
SVG 插画 (ResultIndicator.NotFoundImageSource()) |
内嵌资源 |
ErrorCode500 |
SVG 插画 (ResultIndicator.ServerErrorImageSource()) |
内嵌资源 |
伪类
Result 控件不定义自定义伪类。状态差异通过属性选择器 [Status=xxx] 在 AXAML 中实现。
模板部件(Template Parts)
| 名称 | 类型 | 说明 |
|---|---|---|
Frame |
Border |
根框架 |
RootLayout |
StackPanel |
垂直布局容器 |
PART_StatusIconPresenter |
ContentPresenter |
状态图标展示容器 |
PART_ErrorCodeImage |
Svg |
HTTP 错误码 SVG 插画 |
Header |
ContentPresenter |
标题 |
SubHeader |
ContentPresenter |
副标题 |
ExtraContent |
ContentPresenter |
额外操作区 |
Content |
ContentPresenter |
子内容区域 |