using Xamarin Forms namespace Hello App class Main

  • Slides: 14
Download presentation

Создание кнопки Для кнопки можно задать using Xamarin. Forms; namespace Hello. App { class

Создание кнопки Для кнопки можно задать using Xamarin. Forms; namespace Hello. App { class Main. Page : Content. Page { public Main. Page() { Stack. Layout stack. Layout = new Stack. Layout(); Button button = new Button { Text = "Нажми!", Font. Size = Device. Get. Named. Size(Named. Size. Large, typeof(Button)), Border. Width = 1, Horizontal. Options = Layout. Options. Center, Vertical. Options = Layout. Options. Center. And. Expand }; button. Clicked += On. Button. Clicked; stack. Layout. Children. Add(button); this. Content = stack. Layout; } private void On. Button. Clicked(object sender, System. Event. Args e) { Button button = (Button)sender; button. Text = "Нажато!"; button. Background. Color = Color. Red; } } } обработчик нажатия для события Clicked. По нажатию просто изменяем текст и цвет фона кнопки. Обработчик во многим аналогичен стандартным обработчикам в Windows Forms. Он принимает два параметра: объект типа object (источника события) и System. Event. Args (аргумент события, хранящий некоторую дополнительную информацию). 2

Создание кнопки (XAML) <? xml version="1. 0" encoding="utf-8" ? > <Content. Page xmlns="http: //xamarin.

Создание кнопки (XAML) <? xml version="1. 0" encoding="utf-8" ? > <Content. Page xmlns="http: //xamarin. com/schemas/2014/forms" xmlns: x="http: //schemas. microsoft. com/winfx/2009/xaml" x: Class="Hello. App. Main. Page"> <Stack. Layout> <Button Text = "Нажми!" Font. Size="Large" Border. Width="1" Horizontal. Options="Center" Vertical. Options="Center. And. Expand" Clicked="On. Button. Clicked" /> </Stack. Layout> </Content. Page> using Xamarin. Forms; namespace Hello. App { public partial class Main. Page : Content. Page { public Main. Page() { Initialize. Component(); } private void On. Button. Clicked(object sender, System. Event. Args e) { Button button = (Button)sender; button. Text = "Нажато!"; button. Background. Color = Color. Red; } } } В файле отделенного кода Main. Page. xaml. cs еще надо прописать обработчик On. Button. Clicked 3

public class Main. Page : Content. Page { public Main. Page() { Label label

public class Main. Page : Content. Page { public Main. Page() { Label label = new Label { Vertical. Text. Alignment = Text. Alignment. Center, Horizontal. Text. Alignment = Text. Alignment. Center, Text = "Welcome to Xamarin Forms!", Font. Size = Device. Get. Named. Size(Named. Size. Large, typeof(Label)) }; Tap. Gesture. Recognizer tap. Gesture = new Tap. Gesture. Recognizer { Number. Of. Taps. Required = 2 }; int count = 0; // счетчик нажатий tap. Gesture. Tapped += (s, e) => { count++; if (count % 2 == 0) { label. Background. Color = Color. Black; label. Text. Color = Color. White; } else { label. Text. Color = Color. Black; label. Background. Color = Color. White; } label. Text = string. Format("Вы нажали {0} раз", count); }; label. Gesture. Recognizers. Add(tap. Gesture); Content = label; } Label (работа с событиями Tap. Gesture. Recognizer) 7

Текстовые поля (Entry) class Main. Page : Content. Page { Label text. Label; Entry

Текстовые поля (Entry) class Main. Page : Content. Page { Label text. Label; Entry login. Entry, password. Entry; public Main. Page() { Stack. Layout stack. Layout = new Stack. Layout(); login. Entry = new Entry { Placeholder = "Login" }; login. Entry. Text. Changed+=login. Entry_Text. Changed; password. Entry = new Entry { Placeholder = "Password", Is. Password = true }; text. Label = new Label { Font. Size = Device. Get. Named. Size(Named. Size. Large, typeof(Label)) }; stack. Layout. Children. Add(login. Entry); stack. Layout. Children. Add(password. Entry); stack. Layout. Children. Add(text. Label); this. Content = stack. Layout; } private void login. Entry_Text. Changed(object sender, Text. Changed. Event. Args e) { text. Label. Text = login. Entry. Text; } 8 }

Текстовые поля (Entry) XAML <Stack. Layout> <Entry x: Name="login. Entry" Text. Changed="login. Entry_Text. Changed"

Текстовые поля (Entry) XAML <Stack. Layout> <Entry x: Name="login. Entry" Text. Changed="login. Entry_Text. Changed" /> <Entry x: Name="password. Entry" Placeholder = "Password" Is. Password ="True" /> <Label x: Name="text. Label" Font. Size="Large" /> </Stack. Layout> 9

Editor В отличие от Entry Editor представляет собой многострочное поле ввода, но принципы его

Editor В отличие от Entry Editor представляет собой многострочное поле ввода, но принципы его работы аналогичны. public Main. Page() { Stack. Layout stack. Layout = new Stack. Layout(); Editor text. Editor = new Editor { Height. Request=200, Background. Color=Color. Teal}; Label text. Label = new Label { Text="Многострочный текст", Font. Size= Device. Get. Named. Size(Named. Size. Large, typeof(Label)) }; stack. Layout. Children. Add(text. Label); stack. Layout. Children. Add(text. Editor); this. Content = stack. Layout; } <Stack. Layout> <Label Font="26" Text="Многострочный ввод" /> <Editor Background. Color="#a 5 d 6 a 7" Height. Request="200" /> </Stack. Layout> 12

Контейнер Frame создает вокруг вложенного содержимого прямоугольную границу, за цвет которой отвечает свойство Border.

Контейнер Frame создает вокруг вложенного содержимого прямоугольную границу, за цвет которой отвечает свойство Border. Color. Также отличительной особенностью фрейм является то, что по умолчанию он уже имеет внутренние отступы в 20 единиц: class Main. Page : Content. Page { public Main. Page() { Frame frame = new Frame { Border. Color = Color. Accent }; frame. Content = new Label { Text = "Xamarin Forms", Font. Size= Device. Get. Named. Size(Named. Size. Large, typeof(Label)), Vertical. Options = Layout. Options. Center, Horizontal. Options = Layout. Options. Center }; Padding = new Thickness(15); Content = frame; } } 13

Элемент Box. View представляет прямоугольник. Чаще всего Box. View используется для создания окрашенных областей,

Элемент Box. View представляет прямоугольник. Чаще всего Box. View используется для создания окрашенных областей, либо в качестве контейнера для изображений: class Main. Page : Content. Page { public Main. Page() { Box. View box. View = new Box. View { Color = Color. Accent, Width. Request = 150, Height. Request = 150, Horizontal. Options = Layout. Options. Center, Vertical. Options = Layout. Options. Center. And. Expand }; Content = box. View; } } 14