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

这有帮助吗?

在GitHub上编辑
  1. Documentation
  2. 主题帮助

如何使用 Acss

特别注意

如果没有自定义扩展的需求,按照本页的示例即可使用 Acss。

本页面提供最基本的 Acss 使用示例。其他复杂的使用或者自定义场景请具体参考本小节内部其他章节。

安装依赖库

dotnet add package Nlnet.Avalonia.Css --version 1.0.0-beta.4

注册 Acss 和类型解析

这个过程也可以延后到初始化一起进行。

当前版本不支持使用多个 AcssContext,仅支持默认的 AcssContext.Default。

private static AppBuilder BuildAvaloniaApp()
{
    return AppBuilder.Configure<App>()
        ...
        
        // Use avalonia css stuff.
        .UseAcssDefaultContext()
        
        // Type resolver for 'Your.Lib'. The GenericTypeResolver<TSink> will load all
        // types those belong to the assembly who contains the T class.
        .WithTypeResolverForAcssDefaultContext(new GenericTypeResolver<TSink>())
        ;
}

初始化 AcssContext

你可以在 Application.Initialize() 函数当中选择性地做这些事情。当然其他时机也不受影响。

  • 使用 Acss。

  • 配置参数。

  • 注册类型到类型解释服务中。

  • 创建 Rider 配置。如果你使用了 Rider 作为开发工具的话。

  • 加载 Acss 源。

到此,正常来说,Acss 已经生效。

private class void Initialize()
{
    ...
    
    // [Optional] Use default css builder. It has same effect to 
    // AcssExtension.UseAvaloniaCssDefaultBuilder().
    AcssContext.UseDefaultContext();
	
    // [Optional] Set the current accent and other settings.
    var cfg = AcssContext.Default.GetService<IAcssConfiguration>();
    cfg.Accent = "blue";
    cfg.EnableTransitions = true;
    
    // [Optional] Create rider settings for this Acss builder.
    var riderBuilder = AcssContext.Default.GetService<IRiderSettingsBuilder>();
    riderBuilder.TryBuildRiderSettingsForAcss(out _, out _, null);
    
    // Load acss files to Application.Current.Styles. 
    // You can keep the acssFile for more operations.
    var loader = AcssContext.Default.GetService<IAcssLoader>();
    var acssFile = loader.Load(Application.Current.Styles, new FileSource("Acss/Case.acss"));
    
    // Or load acss files from a folder.
    loader.LoadCollection(Application.Current.Styles, new FileSourceCollection("Acss/"));
    
    ...
}
上一页主题帮助下一页类型解析

最后更新于1年前

这有帮助吗?

❓