Avalonia使用.axaml后缀且必须声明两个命名空间:xmlns="https://github.com/avaloniaui"和xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";无自动生成.g.i.cs文件,需用this.Get("Name")获取控件,事件推荐代码后台绑定,样式采用CSS选择器语法。
主要区别就一个:Avalonia用 .axaml 后缀,WPF用 .xaml;这不是命名习惯问题,而是为解决与Visual Studio的兼容性冲突而做的技术调整。
Avalonia从0.9.11版起统一使用 .axaml,所有模板和新建项默认生成该后缀。关键在于根元素必须声明两个命名空间:
xmlns="https://github.com/avaloniaui" —— Avalonia专属命名空间,缺了它整个文件无法识别xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" —— XAML语言
基础命名空间,用于 x:Class、x:Name 等通用特性虽然语法看起来像WPF XAML,但实际行为有差异:
.g.i.cs 文件,不能直接用 x:Name 当变量名访问控件,必须手动调用 this.Get("Name")
AddHandler 或直接挂载 Click +=
TextBlock.h1
这是最简可用的窗口定义:
注意:根元素可以是 Window、UserControl、Page 等,但必须匹配后台类继承关系;x:Class 值必须与C#类全名完全一致。
基本上就这些,不复杂但容易忽略命名空间和获取控件的方式。