Avalonia XAML
Avalonia UI 使用XAML来定义用户界面。XAML是一种基于XML的标记语言,被许多用户界面框架使用。
AXAML文件扩展名
其他地方使用XAML文件的扩展名是.xaml
,但由于与Visual Studio的技术问题整合,Avalonia UI 使用了自己的.axaml
扩展名——'Avalonia XAML'。
从 Avalonia UI 版本0.9.11开始,所有在Visual Studio中创建的XAML文件都具有.axaml
扩展名;从版本0.10开始,所有 Avalonia UI 模板都使用.axaml
扩展名创建文件。
文件格式
一个典型的Avalonia XAML文件如下所示:
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="AvaloniaApplication1.MainWindow">
</Window>
与所有XML文件一样,有一个根元素。根元素标签<Window></Window>
定义了根的类型。这将对应于Avalonia UI控件的一种类型,在上面的例子中是一个窗口。
上面的示例使用了三个有趣的属性:
xmlns="https://github.com/avaloniaui"
——这是 Avalonia UI 本身的XAML命名空间声明。这是必需的,否则文件将无法被识别为Avalonia XAML文档;xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
——这是XAML语言命名空间的声明;x:Class="AvaloniaApplication1.MainWindow"
——这是上面声明的扩展(用于'x')告诉XAML编译器在文 件中找到相关联的类的位置。这个类在代码后台文件中定义,通常用C#编写。
有关code-behind
概念的信息,请参阅这里.
控件元素
您可以通过添加表示 Avalonia UI 控件之一的XML元素来构建应用程序的用户界面。元素标签使用与控件类名相同的名称。
一个UI可以由多种不同类型的控件组成。要了解有关UI组合概念的更多信息,请参阅这里。
例如,下面的XAML将按钮添加到窗口的内容中:
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button>Hello World!</Button>
</Window>
要获取 Avalonia UI 内置控件的完整列表,请参阅此处的参考资料。
控件属性
表示控件的XML元素具有与可设置的控件属性对应的属性。您可以通过向元素添加属性来设置控件属性。
例如,要为按钮控件指定蓝色背景,您可以添加Background
属性并将值设置为"Blue"
。如下所示:
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button Background="Blue">Hello World!</Button>
</Window>
控件内容
您可能已经注意到上面示例中的按钮的内容("Hello World"字符串)放置在其打开和关闭标签之间。或者,您可以使用Content属性来设置内容。
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button Content="Hello World!"/>
</Window>
这种行为是 Avalonia UI 控件内容特有的。
数据绑定
您经常会使用 Avalonia UI 绑定系统将控件属性链接到底层对象。链接是通过{Binding}
标记扩展来声明的。例如:
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button Content="{Binding Greeting}"/>
</Window>
有关数据绑定背后的概念的更多信息,请参阅这里。