按钮与事件
解决方案:

MainWindow.axaml
<Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="_02_ButtonAndEvent.MainWindow" Title="Button and Event - 按钮和点击事件" Width="400" Height="350"> <StackPanel Spacing="20" Margin="30"> <TextBlock x:Name="MessageText" Text="点击按钮看看效果" HorizontalAlignment="Center" FontSize="18"/> <Button x:Name="ClickMeButton" Content="点我!" HorizontalAlignment="Center" Padding="20,10"/> <Button x:Name="ResetButton" Content="重置" HorizontalAlignment="Center" Padding="20,10"/> </StackPanel> </Window>
MainWindow.axaml.cs
可以看到,是使用的基础事件完成的。
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
namespace _02_ButtonAndEvent;
public partial class MainWindow : Window
{
private int _clickCount = 0;
public MainWindow()
{
InitializeComponent();
ClickMeButton.Click += OnClickMeButtonClick;
ResetButton.Click += OnResetButtonClick;
}
private void OnClickMeButtonClick(object? sender, RoutedEventArgs e)
{
_clickCount++;
MessageText.Text = $"按钮被点击了 {_clickCount} 次!";
}
private void OnResetButtonClick(object? sender, RoutedEventArgs e)
{
_clickCount = 0;
MessageText.Text = "点击按钮看看效果";
}
}Program.cs
这里是Avalonia的标准的初始化部分。
using Avalonia;
using System;
namespace _02_ButtonAndEvent;
class Program
{
[STAThread]
static void Main(string[] args)
{
BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);
}
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.WithInterFont()
.LogToTrace();
}执行结果:

另外,vs2022装的这个Avalonia插件,其实已经带了运行预览效果了,如下图所示:
