Для произведения какого-либо действия нам понадобятся кнопки, представленные классом Button
. Создадим кнопку в коде:
using Xamarin.Forms; namespace HelloApp { class MainPage : ContentPage { public MainPage() { StackLayout stackLayout = new StackLayout(); Button button = new Button { Text = "Нажми!", FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Button)), BorderWidth = 1, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand }; button.Clicked += OnButtonClicked; stackLayout.Children.Add(button); this.Content = stackLayout; } private void OnButtonClicked(object sender, System.EventArgs e) { Button button = (Button)sender; button.Text = "Нажато!"; button.BackgroundColor = Color.Red; } } }
Для кнопки можно задать обработчик нажатия для события Clicked
. В данном случае по нажатию просто изменяем текст и цвет фона кнопки.
Обрботчик во многим аналогичен стандартным обработчикам в Windows Forms. Он принимает два параметра: объект типа object (источника события) и System.EventArgs (аргумент события, хранящий некоторую дополнительную информацию).
Анлогичная кнопка в xaml:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="HelloApp.MainPage"> <StackLayout> <Button Text = "Нажми!" FontSize="Large" BorderWidth="1" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" Clicked="OnButtonClicked" /> </StackLayout> </ContentPage>
И тогда в файле отделенного кода MainPage.xaml.cs еще надо прописать обработчик OnButtonClicked:
using Xamarin.Forms; namespace HelloApp { public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } private void OnButtonClicked(object sender, System.EventArgs e) { Button button = (Button)sender; button.Text = "Нажато!"; button.BackgroundColor = Color.Red; } } }
Кнопка имеет много различных свойств, из которых следует выделить следующие:
FontFamily: шрифт, который используется для текста на кнопке
FontSize: размер текста на кнопке
FontAttributes: выделение жирным или курсивом текста на кнопке
TextColor: цвет шрифта
BorderColor: цвет границы
BorderWidth: ширина границы
CornerRadius: радиус границы
Image: позволяет задать изображение на кнопке