Создание интерфейса из кода C#

Последнее обновление: 28.06.2022

Проект .NET MAUI по умолчанию разделяет определение графического интерфейса от программной логики. Например, файл MainPage.xaml определяет в виде кода XAML визуальный интерфейс страницы MainPage, а файл MainPage.xaml.cs хранит связанную с этой странице программную логику, в частности, обработчики событий элементов управления. И в принципе такой путь, при котором визуальный интерфейс определяется в XAML, а программная логика - в C#, является предпочтительным. Однако данный путь не единственный. .NET MAUI также позволяет создавать визуальный интерфейс также полностью с помощью кода C#, либо комбинируя XAML и C#.

Например, добавим в проект обычный класс на языке C#, который назовем StartPage.

Добавление станицы в проект .NET MAUI на C#

И определим в этом классе следующее содержимое:

namespace HelloApp
{
    class StartPage : ContentPage
    {
        public StartPage()
        {
            Content = new Label() { Text = "Hello METANIT.COM!" };
        }
    }
}

Данный класс представляет страницу, поэтому наследуется от класса ContentPage. В конструкторе создается метка с текстом, которая задается в качестве содержимого страницы (new Label() { Text = "Hello METANIT.COM!" }). Чтобы задачть метку в качестве содержимого страницы, элемент Label присваивается свойству Content страницы.

Чтобы обозначить StartPage в качестве стартовой страницы, изменим класс App в файле App.xaml.cs:

namespace HelloApp;

public partial class App : Application
{
	public App()
	{
		InitializeComponent();

		MainPage = new StartPage();
	}
}

Теперь свойство MainPage указывает на только что созданную страницу StartPage. Мы можем запустить проект и увидим на экране устройства текст метки.

Создание новой страницы в .NET MAUI и C#

Подобным образом мы можем лепить в коде C# и более сложные композиции элементов, однако скорее всего использование xaml для определения интерфейса многим покажется более удобным, чем код C#.

Также стоит отметить, что в Visual Studio есть готовый шаблон для добавления новых классов страниц с простейшим кодом. Так, чтобы добавить новую страницу, надо при добавлении нового элемента выбрать шаблон Content Page (C#):

Добавление Content Page в проект на .NET MAUI и C#

Если нужно также добавить и файл xaml для страницы, то можно выбрыть другой шаблон - Content Page

При выборе шаблона Content Page (C#) добавленный класс страницы будет иметь следующий код:

namespace HelloApp
{
    public class Page1 : ContentPage
    {
        public Page1()
        {
            Content = new StackLayout
            {
                Children = {
                    new Label { Text = "Welcome to Xamarin.Forms!" }
                }
            };
        }
    }
}

Этот класс также будет наследоваться от базового класса ContentPage и будет иметь практически ту же самую организацию, что и выше созданный класс MainPage.

И также в классе приложения в файле App.xaml.cs мы можем установить эту страницу в качестве стартовой:

namespace HelloApp
{
    public partial class App : Application
    {
        public App()
        {
			InitializeComponent();
            MainPage = new Page1();
        }
    }
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850