安装
添加 AvaloniaUIKit 包,并在 App.axaml 中启用 UIKitTheme。
安装包
dotnet add package AvaloniaUIKit面向 Avalonia 可选包以及第三方库 Dock.Avalonia 的主题是独立的,因此不使用它们的应用不会引入额外依赖:
dotnet add package AvaloniaUIKit.ColorPicker
dotnet add package AvaloniaUIKit.DataGrid
dotnet add package AvaloniaUIKit.DockDock.Avalonia 的主题针对该库的一个特定版本(12.1.0.6),其包精确依赖该版本。它会替换该库自带的主题:不要再额外添加那些主题。
本库面向当前的 Avalonia 12 版本与最新的 .NET SDK。
启用主题
把 UIKitTheme 加入应用的样式。它与 FluentTheme 一样是 Styles 主题,可以独立工作:它还会为窗口、弹出层、装饰层和焦点环提供主题。它跟随应用的主题变体:Default Light、Default Dark,或某一套同捆配色主题(见主题设置)。
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:uikit="clr-namespace:AvaloniaUIKit;assembly=AvaloniaUIKit"
x:Class="MyApp.App">
<Application.Styles>
<uikit:UIKitTheme />
</Application.Styles>
</Application>可选包各提供一个主题,放在 UIKitTheme 之后:
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:uikit="clr-namespace:AvaloniaUIKit;assembly=AvaloniaUIKit"
xmlns:uikitcolor="clr-namespace:AvaloniaUIKit;assembly=AvaloniaUIKit.ColorPicker"
xmlns:uikitgrid="clr-namespace:AvaloniaUIKit;assembly=AvaloniaUIKit.DataGrid"
xmlns:uikitdock="clr-namespace:AvaloniaUIKit;assembly=AvaloniaUIKit.Dock"
x:Class="MyApp.App">
<Application.Styles>
<uikit:UIKitTheme />
<uikitcolor:UIKitColorPickerTheme />
<uikitgrid:UIKitDataGridTheme />
<uikitdock:UIKitDockTheme />
</Application.Styles>
</Application>在使用新控件的 XAML 中,用 using: 映射命名空间:
xmlns:uikit="using:AvaloniaUIKit"叠加在 FluentTheme 之上
UIKitTheme 只为 组件 中列出的控件提供主题。若要让其他控件保留原有外观,请先添加 FluentTheme;后添加的主题优先,而受主题管理的控件无论下方是否有 Fluent,外观都相同。
<Application.Styles>
<FluentTheme />
<uikit:UIKitTheme />
</Application.Styles>NativeAOT
AvaloniaUIKit 与 AvaloniaUIKit.ColorPicker 可裁剪,并兼容 AOT:默认使用编译绑定,分析器会禁止反射。Avalonia 的 DataGrid 本身不可裁剪,因此 AvaloniaUIKit.DataGrid 不提供 NativeAOT 保证;基础表格请使用主包中的 TableView。Dock.Avalonia 也没有声明自身可裁剪:AvaloniaUIKit.Dock 自身没有裁剪警告,但不为 Dock 提供 NativeAOT 保证(见 Dock)。