Как сделать изменение страниц по нажатию кнопки в Avalonia?

Для изменения страниц по нажатию кнопки в Avalonia (кроссплатформенный фреймворк для создания графических пользовательских интерфейсов на .NET) можно воспользоваться контейнером ContentControl, в который будет загружаться нужная страница. Для этого вы можете создать различные UserControl, представляющие собой отдельные страницы приложения.

Пример кода:

1. Создайте несколько UserControl для различных страниц, например:

using Avalonia.Controls;
using Avalonia.Markup.Xaml;

public class Page1 : UserControl
{
    public Page1()
    {
        this.InitializeComponent();
    }

    private void InitializeComponent()
    {
        AvaloniaXamlLoader.Load(this);
    }
}

2. В главном окне приложения создайте ContentControl, в который будет загружаться выбранная страница:

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:YourNamespace"
        x:Class="YourNamespace.MainWindow"
        Title="Avalonia Application">
    <ContentControl Name="contentControl" />
</Window>

3. При нажатии на кнопку изменяйте содержимое ContentControl, загружая нужную страницу:

private void Button_Click(object sender, RoutedEventArgs e)
{
    contentControl.Content = new Page1();
}

Таким образом, при нажатии на кнопку в ContentControl будет загружаться UserControl с новой страницей. Помимо этого, вы можете использовать различные техники для навигации между страницами, сохранения состояния и дополнительной логики в зависимости от требований вашего приложения.