Элементы управления

Обзор элементов управления в Universal Windows Platform

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

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, а все дерево наследования можно представить следующим образом:

Элементы управления в Universal Windows Platform

Все элементы имеют ряд общих свойств.

Свойство Name

Это свойство устанавливает имя элемента и позволяет на него ссылаться в коде xaml или c#. Например, пусть в xaml установлена следующая кнопка:

<Button x:Name="myButton" Content="MyButton" />

Тогда в файле кода C# мы можем обратиться к этой кнопке:

myButton.Content = "Привет!";

FieldModifier

Свойство 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".

Свойство Visibility

Это свойство устанавливает параметры видимости элемента и может принимать одно из двух значений:

  • 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" />

Свойство FlowDirection

Данное свойство задает направление текста. Если оно равно RightToLeft, то текст начинается с правого края, если - LeftToRight, то с левого:

<StackPanel Background="Lavender">
    <TextBlock FlowDirection="RightToLeft">RightToLeft</TextBlock>
    <TextBlock FlowDirection="LeftToRight">LeftToRight</TextBlock>
</StackPanel>
FlowDirection в Universal Windows Platform

Цвета фона и шрифта

Свойства 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;
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850