Avalonia Css
Source CodeEnglish
  • Documentation
    • 🎆欢迎
    • 🏌️‍♂️从这里开始
      • 关于 Acss
      • 过程和概念
      • 安全性
      • 性能评估
      • 配置开发环境
      • 调试
      • 源码结构介绍
      • FAQ
    • ❓主题帮助
      • 如何使用 Acss
        • 类型解析
        • 配置参数
        • 代码源
        • 扩展资源
      • 如何使用 Acss.Controls
      • 如何使用 Acss.Fluent
      • 如何使用 MessageBox
      • 如何使用 Senior
      • 如何使用 Acss.Behaviors
    • 📏Acss 语法
      • 注释
      • 资源
      • 样式
      • 动画
      • 行为
    • 💎最佳实践
      • 如何定义良好的控件模板
由 GitBook 提供支持
在本页
  • 内置的资源类型
  • 自定义资源类型

这有帮助吗?

在GitHub上编辑
  1. Documentation
  2. 主题帮助
  3. 如何使用 Acss

扩展资源

Acss 的资源(AcssResource)支持扩展。目前我们内置了一些常用的资源类型,你也可以定义自己的资源类型。

内置的资源类型

  1. Brush

  2. Color

  3. Double

  4. Int

  5. LinearBrush

  6. Thickness

  7. Transition

  8. BoxShadows

在后面的计划中会新增更多的内置资源类型。

自定义资源类型

Acss 的资源都是继承自抽象类 AcssResourceBaseAndFac<T>,定义如下:

public abstract class AcssResourceBaseAndFac<T> : AcssResource, IResourceFactory 
    where T : AcssResource, new()

你可以继承这个类来扩展自己的资源类型,例如以下代码中,我们扩展定义了 Thickness 的资源类型。该类型的别名有 “Thickness”,“Thick”,“StrokeThickness”,“Margin”,“Padding”。在 Acss 代码中上述的任何一个别名都会被解析为 Thickness 的资源。

注意,别名对大小写不敏感。thick 和 Thick 指代相同的资源类型 Thickness。

[ResourceType(nameof(Thickness))]
[ResourceType("Thick")]
[ResourceType("StrokeThickness")]
[ResourceType("Margin")]
[ResourceType("Padding")]
internal class ThicknessResource : AcssResourceBaseAndFac<ThicknessResource>
{
    protected override object? BuildValue(IAcssContext context, string valueString)
    {
        return valueString.TryParseThickness();
    }
}
上一页代码源下一页如何使用 Acss.Controls

最后更新于1年前

这有帮助吗?

❓