资源

资源集合语法

资源定义在资源集合里面。资源集合的语法如下:

/* Normal resources. */
::res {
    /* Resource here. */
}

/* Resources is available when accent is blue. */
::res[accent=blue] {
    /* Resource here. */
}

/* 
Resource is available when accent is blue. 
And description is "Resources description". 
*/
::res[accent=blue][desc=Resources description] {
    /* Resource here. */
}

/* 
Resource is available when theme is light and accent is blue. 
And description is "Resources description". 
*/
::res[theme=light][accent=blue][desc=Resources description] {
    /* Resource here. */
}

针对资源集合,目前我们仅支持“描述”(desc)、“主题颜色”(accent)和“主题”(theme)三个属性。其中 desc 是普通属性,accent 和 theme 是过滤属性,accent 过滤的有效参考值在 IAcssConfigration 当中,参考配置参数,theme 过滤的有效参考值是 Avalonia 的 ThemeVariant。

特别提示

我们稍后计划针对 Acss 的过滤控制的特性,提供更多的过滤属性。

资源语法

资源定义的语法形式如下:

自定义资源

自定义资源语法和内置资源语法一致,形式也是如资源语法所示。自定义资源参考扩展资源

Color

Acss 支持多种颜色表达方式,包括常用色名称、RGB、RGBA、HSL、HSV 等。

Acss 支持对所有值的表达形式额外定义透明度,这让我们可以更加灵活的定义颜色资源。例如:

Brush

对于 Color 支持的全部值表达形式,Brush 全部支持,包括常用色名称、RGB、RGBA、HSL、HSV等,也包括额外的透明度定义。

同时,画刷支持对其 Color 属性应用动态资源。应用动态资源时仍然可以添加额外的透明度属性。

Linear Brush

目前我们对 Linear Brush 的支持不够完善。初步使用方式如下代码所示。

Double & Int

Thickness

Transition

Acss 支持定义 Transition 资源,方便重用。这是 Avalonia 本身不具备的。Avalonia 支持定义 Transitions 资源,我们暂时没有进行支持。

BoxShadows

我们暂时对阴影资源的支持不完善,仅支持以下定义形式。

最后更新于

这有帮助吗?