Universal Windows Platform предоставляет большой выбор элементов, которые условно можно объединить в несколько групп:
Элементы управления содержимым: различные кнопки, например, элементы Button, ToggleButton, RadioButton, CheckBox и др. Отличительной
особенностью этих элементов является свойство Content
, которое устанавливает содержимое элемента
Текстовые элементы: это элементы TextBlock, TextBox, PasswordBox, которые управляют некоторым текстом через свойство
Text
Элементы управления списками: эта группа элементов отличается тем, что хранит в себе список других элементов в виде свойства
Items
. К подобным элементам можно отнести ListBox, ListView, GridView, ComboBox, FlipView
Специальные контейнеры: они не являются элементами компоновки, однако могут вмещать в себя другие элементы и влиять на их позиционирование. В частности, это элементы Border и ScrollViewer
Элементы для работ с датами и временем: эти элементы управляет датой и(или) временем в виде объекта DateTimeOffset, они представлены классами DatePicker, TimePicker, CalendarDatePicker, CalendarView
Элементы, основанные на диапазонах значений: это элементы Slider, ProgressBar, которые служат для визуализации некоторого диапазона значений
Все остальные элементы, не попавшие в предыдущие группы
Хотя данное разделение довольно условно, однако в ряде случаев элементы из одной группы имеют некоторые общие черты в поведении.
Большинство элементов в Universal Windows Platform наследуется от класса Control, а все дерево наследования можно представить следующим образом:
Все элементы имеют ряд общих свойств.
Это свойство устанавливает имя элемента и позволяет на него ссылаться в коде xaml или c#. Например, пусть в xaml установлена следующая кнопка:
<Button x:Name="myButton" Content="MyButton" />
Тогда в файле кода C# мы можем обратиться к этой кнопке:
myButton.Content = "Привет!";
Свойство FieldModifier задает модификатор доступа к объекту (private, protected, internal, protected internal
и public
):
<Button x:FieldModifier="private" x:Name="button1" Content="Hello World" /> <Button x:FieldModifier="internal" x:Name="button2" Content="Hello UWP" />
В данном случае объявление кнопок с модификаторами будет равноценно следующему их определению в коде:
private Button button1; internal Button button2;
Если атрибут FieldModifier не определен, то по умолчанию элемент использует модификатор "protected internal".
Это свойство устанавливает параметры видимости элемента и может принимать одно из двух значений:
Visible
: элемент виден и участвует в компоновке
Collapsed
: элемент не виден и не участвует в компоновке, то есть при размещении других элементов в контейнере он не учитывается, как будто его и нет
Специальная группа свойств позволяет настроить шрифт:
FontFamily: определяет семейство шрифтов. Например, "Verdana", "Arial". Установка в коде C#:
button1.FontFamily = new FontFamily("Verdana");
FontSize: определяет высоту шрифта
FontStyle: определяет наклон шрифта, принимает одно из трех значений - Normal, Italic, Oblique. Установка в коде C#:
button1.FontStyle = Windows.UI.Text.FontStyle.Italic;
FontWeight: определяет толщину шрифта и принимает ряд значений, как Black,Bold и др. Установка в коде C#:
button1.FontWeight = new Windows.UI.Text.FontWeight() { Weight = 999 };
FontStretch: определяет, как будет растягивать или сжимать текст, например, значение Condensed сжимает текст, а Expanded - растягивает. Установка в коде C#:
button1.FontStretch = Windows.UI.Text.FontStretch.Expanded;
Например:
<Button Content="Hello World!" FontFamily="Verdana" FontSize="13" FontStretch="Expanded" />
Данное свойство задает направление текста. Если оно равно RightToLeft, то текст начинается с правого края, если - LeftToRight, то с левого:
<StackPanel Background="Lavender"> <TextBlock FlowDirection="RightToLeft">RightToLeft</TextBlock> <TextBlock FlowDirection="LeftToRight">LeftToRight</TextBlock> </StackPanel>
Свойства Background и Foreground задают соответственно цвет фона и текста элемента управления.
Одним из способов задания цвета представляет использование его числового кода, например: Background="#ffffff"
.
В качестве значения свойство Background (Foreground) может принимать запись в виде шестнадцатеричного значения в формате #rrggbb,
где rr - красная составляющая, gg - зеленая составляющая, а bb - синяя. Также можно при установке цвета учитывать альфа-компонент, используя формат #aarrggbb.
Но проще всего использовать уже готовые константы из класса Windows.UI.Colors:
<Button Background="LightGray" Foreground="Red" Content="Hello" />
Однако при компиляции будет создаваться объект SolidColorBrush, который и будет задавать цвет элемента. То есть определение кнопки выше фактически будет равноценно следующему:
<Button Content="Hello"> <Button.Background> <SolidColorBrush Color="LightGray" /> </Button.Background> <Button.Foreground> <SolidColorBrush Color="Red" /> </Button.Foreground> </Button>
Это надо также учитывать при установке или получении цвета элемента в коде c#:
SolidColorBrush forebrush = new SolidColorBrush(); forebrush.Color = Windows.UI.Color.FromArgb(250, 50, 50, 50); myButton.Foreground = forebrush; SolidColorBrush redBrush = new SolidColorBrush(); redBrush.Color = Windows.UI.Colors.Yellow; myButton.Background = redBrush;