关于 Acss

Acss

Avalonia Css 不遵循 CSS(Cascading Style Sheets)标准。它是用来分离 Avalonia UI 的结构和样式的。因为概念和语法上和 CSS 类似,因此我们仍然借用这个名字,将其命名为 Avalonia Css,或者 Acss。

Acss 的优势

我们通过 Acss 将 Avalonia 的 axaml 拆分为结构和样式。结构定义 UI 的骨骼,类似于 Html 的角色。样式定义 UI 的样貌,类似于 CSS 的角色。这样做有以下好处:

1. 结构分离

开发人员编写页面逻辑和页面功能时,不需要考虑 UI 的样式,专注于功能;而在修改样式时也可以独立而连续地专注于主题样式。

连续专注让我们的工作更加顺滑,优雅,且事半功倍。

2. 结构重用

UI 的结构可以重用,针对不同主题,不需要重新编写结构的代码,高效且安全。

高可重用的结构,请参考 如何定义良好的控件模板

3. 动态加载

Acss 支持代码源的热更新(热重载),更新后即时生效。

4. 过滤控制。(开发中...)

对于样式可以做更复杂的控制功能,包括属性控制、样式控制、资源控制、动画控制、主题控制等。例如,我们可以根据指定条件控制是否显示动画、Transitions,控制生效的样式、资源分组等。

5. 行为扩展

我们对 Acss 内置了一些通用行为。例如“Esc 键关闭窗口”等。你也可以扩展自己的 Acss 行为。

我们并没有使用 Avalonia.Xaml.Interactivity 这个组件。你仍然可以独立的使用 Acss 行为和 Avalonia 行为库,而不用担心他们之间的冲突。

6. 语法扩展

基于 Acss 我们可以扩展一些 axaml 不支持的语法,例如样式多继承和跨类型重用。

Acss 样式可以继承多个样式模板(多继承),可以继承通用样式模板(跨类型继承)。

7. 样式调试。(计划中...)

我们计划提供样式调试工具,方便开发期间浏览一切和 Acss 样式、资源等有关的信息。

8. 自定义绘制。(计划中...)

我们计划让 Acss 支持在任意控件上进行自定义的绘制操作。

最后更新于