Files

4.5 KiB
Raw Permalink Blame History

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 子内容区域