跳到主要内容
版本:11.0.0

控件内容

您可能已经看到了在将按钮控件放入_Avalonia UI_窗口的内容区域时会发生什么。

信息

关于_Avalonia UI_控件区域的概念,可以在此处找到讨论。

例如:

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="MySample.MainWindow"
Title="MySample">
<Button HorizontalAlignment="Center" >Hello World!</Button>
</Window>

窗口会显示一个按钮 - 在此例中水平居中(指定)和垂直居中(默认情况下)。效果如下图所示:

如果您将一个字符串放入窗口的内容区域,例如:

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="MySample.MainWindow"
Title="MySample">
Hello World!
</Window>

窗口将显示该字符串:

但是如果您尝试显示在窗口中定义的类的对象会发生什么呢?

例如,使用上面的Student类定义:

namespace MySample
{
public class Student
{
public string FirstName { get; set;} = String.Empty;
public string LastName { get; set;} = String.Empty;
}
}

并且将XML命名空间local定义为MySample命名空间(来自上面的代码),您可以在窗口的内容区域中定义一个学生对象,如下所示:

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MySample"
x:Class="MySample.Views.MainWindow">
<local:Student FirstName="Jane" LastName="Deer"/>
</Window>

但是,您将只会看到学生对象的完全限定类名:

这并不是很有帮助!这是因为_Avalonia UI_没有定义如何显示Student类的对象 - 它不是一个控件 - 因此它会退回到.ToString()方法,您所看到的只是完全限定的类名。

在接下来的页面上,您将看到一种指定如何显示您定义的类的对象(不是控件或简单字符串)的方法。