Q1: 更改V11后无法编译,显示FluentTheme不存在
当前Avalonia UI V11.0 仍处于预览阶段,因此Visual Studio和Rider插件中的默认模板仍然没有更新。如果通过默认模板创建项目并修改为Avalonia版本为11.0-previewX后可能导致无法运行。
这是因为在V11中Avalonia团队决定将FluentTheme以单独的nuget包分发。需要在项目中引入Avalonia.Themes.Fluent
dotnet add package Avalonia.Themes.Fluent --version 11.0.0-preview4
这样做有两点考虑:
- Avalonia的设计高度模块化,所以控件其实是没有样式的。Fluent主题只是为控件提供了一种的样式,因此可以分开发布。
- 瘦身。在Fluent主题中大多数体积都是默认的字体,如果不需要Fluent主题则可以减小应用的大小。
Q2: ClipToBounds 失效
当前V11中默认启用了Compisition Render,仍然有bug,导致ClipToBounds失效。需要禁用。在Program.cs中修改如下
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.With(new Win32PlatformOptions(){ UseCompositor = false}) // 增加此行
.LogToTrace();