1、主题
(1)默认主题

  官方自带的主题支持,通过设置Application.axaml中的RequestedThemeVariant属性来启用,代码如下:

<Application xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="AvaloniaUI_Simple.App"
             RequestedThemeVariant="Default">
             <!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->

    <Application.Styles>
        <FluentTheme />
    </Application.Styles>
</Application>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

  如果要遵循系统当前的主题,可以将其设置为 "Default"。其他可用选项为 "Dark" 和 "Light"

 (2)自定义主题

  根据 PR  #8166,现在方法 Styles.TryGetResource 需要一个可为空的 ThemeVariant 参数。这允许用户指定 LightDark 和 Default

  使用 ThemeVariant.Default 作为键将特定的主题字典标记为一种回退(fallback),以防在其他主题字典中找不到主题变体或资源键。

  除了内置的 LightDark 和 Default 值外,任何对象值都可以用作键(因为它包装在 ThemeVariant(object key) 结构中)。如果开发人员希想要在 XAML 代码中定义多个自定义主题作为静态属性并从中引用它们,则可以在此处使用 {x:Static} 标记扩展。

// 以前
bool TryGetResource(object key, out object? value)

// Avalonia v11
bool TryGetResource(object key, ThemeVariant? theme, out object? value)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

作者:꧁执笔小白꧂