跳到主要内容

响应事件

在Avalonia应用程序中,您可以使用多种方式响应操作。 在本页面中,您将了解如何使用最简单的方法之一:如何编写按钮点击的事件处理代码。

首先,您将编写一个不与任何其他控件交互的按钮单击事件处理程序。

Code-Behind

XAML 文件可以拥有一个关联的 C# 代码 Code-Behind (通常被翻译为“代码隐藏”、“后端代码”、“后台代码”), 用于访问其关联 XAML 中的命名控件并处理其的事件。 如果您使用的是 IDE,您可以在 Solution Explorer 中找到这个文件,它是 .axaml 文件的子项。

Solution ExplorerSolution Explorer

修改 MainWindow 的代码隐藏:

  • 打开 MainWindow.axaml.cs 文件

您将看到一些类似于以下代码的C#代码:

using Avalonia.Controls;

namespace GetStartedApp.Views;

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}

分部类 MainWindow 对应 Avalonia 根据您已有的 XAML 创建的 Window。 代码隐藏中分部类的命名空间必须与 XAML 保持一致,您可以在 XAML 标记中找到该类名:

<UserControl x:Class="GetStartedApp.Views.MainWindow"
...>
</UserControl>

要为按钮添加事件处理程序,请按照以下步骤进行操作:

  • 在代码隐藏文件中找到 MainWindow 的构造函数(参见上述说明)。
  • 在构造函数之后添加以下代码:
private void Button_OnClick(object? sender, RoutedEventArgs e)
{
Debug.WriteLine("Click!");
}

这将需要一些额外的 using 语句:

using Avalonia.Interactivity;
using System.Diagnostics;
  • 切换到XAML文件,找到 <Button> 标签。
  • 在标记的末尾添加 Click 特性,如下所示:
<Button Grid.Row="2"  Grid.Column="1" Click="Button_OnClick">Calculate</Button>
  • 以 debug 模式运行应用程序并点击按钮。

您应该会在 Debug Output 输出窗口中看到如下结果:

Application runningApplication running

在下一页中,您将了解如何使用 code-behind 在运行时读取和更改 Avalonia 控件的属性。