Кнопки

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

Класс Button представляет кнопку. Кнопка отображает некоторый текст и может реагировать на нажатия.

Кнопка имеет много различных свойств, из которых следует выделить следующие:

  • FontFamily: шрифт, который используется для текста на кнопке

  • FontSize: размер текста на кнопке

  • FontAttributes: выделение жирным или курсивом текста на кнопке

  • FontAutoScalingEnabled: указывает, будет ли текст кнопки масштабироваться в соответствии с настройками системы

  • LineBreakMode: объект типа LineBreakMode, который указывает, как будет переноситься текст кнопки

  • TextColor: цвет шрифта

  • BorderColor: цвет границы

  • BorderWidth: ширина границы

  • ImageSource: позволяет задать изображение на кнопке

Для взаимодействия с пользователем у класса Button определено ряд событий, в частности:

  • Clicked: событие нажатия пальцем или указателем мыши на кнопку. Событие срабатывает, когда пользователь убирает палец или мышь с кнопки

  • Pressed: событие нажатия пальцем или указателем мыши на кнопку. Событие срабатывает, когда палец пользователя или мышь находятся на кнопке

  • Released: событие нажатия пальцем или указателем мыши на кнопку. Событие срабатывает, когда пользователь убрал палец или мышь с кнопки

Создадим кнопку в коде:

namespace HelloApp
{
    class StartPage : ContentPage
    {
        public StartPage()
        {
            Grid grid = new Grid(); 

            Button button = new Button
            {
                Text = "Нажми",
                FontSize = 22,
                BorderWidth = 1,
                BackgroundColor = Colors.LightPink,
                TextColor = Colors.DarkRed,
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions = LayoutOptions.Center
            };
            button.Clicked += OnButtonClicked;

            grid.Children.Add(button);
            Content = grid;
        }

        private void OnButtonClicked(object sender, System.EventArgs e)
        {
            Button button = (Button)sender;
            button.Text = "Нажато!";
        }
    }
}

С помощью метода OnButtonClicked здесь определяется обработчик нажатия кнопки. Обработчик во многим аналогичен стандартным обработчикам в Windows Forms. Он принимает два параметра: объект типа object (источника события) и System.EventArgs (аргумент события, хранящий некоторую дополнительную информацию). В данном случае по нажатию просто изменяем текст кнопки.

Кнопка в .NET MAUI и C#

Аналогичная кнопка в xaml:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="HelloApp.MainPage">
    <Grid>
        <Button Text="Нажми" FontSize="22" BorderWidth="1"
                BackgroundColor="LightPink" TextColor="DarkRed"
        HorizontalOptions="Center" VerticalOptions="Center"
        Clicked="OnButtonClicked" />
    </Grid>
</ContentPage>

И тогда в файле отделенного кода MainPage.xaml.cs еще надо прописать обработчик OnButtonClicked:

namespace HelloApp
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }
        private void OnButtonClicked(object sender, System.EventArgs e)
        {
            Button button = (Button)sender;
            button.Text = "Нажато!";
        }
    }
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850