Элемент TextBlock служит для вывода простой текстовой информации, то есть представляет собой обычную метку. За установку текста метки отвечает свойство Text
:
<TextBlock Text="Universal Windows Platfom" />
Для настройки шрифта мы можем использовать стандартные свойства FontSize (высота шрифта), FontFamily (семейство шрифтов), FontStretch (растяжение шрифта), FontStyle (стиль наклона), FontWeight (вес/толщина шрифта):
<TextBlock Text="Universal Windows Platfom" FontSize="20" FontFamily="Verdana" FontStretch="Normal" FontStyle="Normal" FontWeight="Bold"/>
С помощью свойств LineHeight, TextWrapping и TextAllignment мы можем задать дополнительные настройки текста.
Свойство LineHeight позволяет указывать высоту строк.
Свойство TextWrapping позволяет переносить текст. Может принимать три значения:
NoWrap
: текст не переносится. Значение по умолчанию
Wrap
: если ширина текстовой метки не позволяет вместить весь текст, то в ней создается новые строки, на которые переносится текст
WrapWholeWords
: текст переносится по границам слов
Установка в коде:
textBlock.TextWrapping = TextWrapping.WrapWholeWords;
Свойство TextAllignment выравнивает текст. Может принимать следующие значения:
Center
: выравнивание по центру
DetectFromContent
: направление выравнивания зависит от текста
Justify
: текст не растягивается так, чтобы символы были оптимальным образом распределены по всей ширине блока
Left
: выравнивание по левому краю
Right
: выравнивание по правому краю
Установка в коде:
textBlock.TextAlignment = TextAlignment.Justify;
Например:
<TextBlock Text="Онегин был по мненью многих ученый малый, но педант. Имел он счастливый талант..." TextWrapping="Wrap" LineHeight="30" TextAlignment="Justify" FontSize="20" />
Свойство TextLineBounds устанавливает способ определения высоты для каждой строки текста в элементе. Может принимать следующие значения:
Full
: строка имеет стандартную высоту. Значение по умолчанию
TrimToCapHeight
: высота строки устанавливается по высоте шапки шрифта.
TrimToBaseline
: нижний уровень строки устанавливается по опорной линии текста.
Tight
: высота строки устанавливается по шапке шрифта, а нижний уровень - по опорной линии текста
Установка в коде:
textBlock.TextLineBounds = TextLineBounds.Full;
Свойство TextTrimming устанавливает, как будет усекаться текст при выходе за пределы ограничивающего прямоугольника. Может принимать следующие значения:
None
: текст не усекается. Значение по умолчанию
CharacterEllipsis
: текст усекается по границе символа. На месте усечения вставляется многоточие
WordEllipsis
: текст усекается по границе слова. На месте усечения вставляется многоточие
Clip
: текст обрезается на уровне пикселей
Установка в коде:
textBlock.TextTrimming = TextTrimming.WordEllipsis;
Свойство FlowDirection задает направление текста - слева направо или справа налево:
LeftToRight
: направление текста слева направо, значение по умолчанию
RightToLeft
: направление текста справа налево
Установка в коде:
textBlock.FlowDirection = FlowDirection.RightToLeft;
Свойство TextReadingOrder также влияет на порядок чтения:
Default
: по умолчанию не переопределяет направление содержимого. Направление задается через FlowDirection
DetectFromContent
: корректирует порядок, в котором размещаются блоки двунаправленного текста
UseFlowDirection
: то же самое, что и Default
Установка в коде:
textBlock.TextReadingOrder = TextReadingOrder.UseFlowDirection;
Для ввода текста используется элемент TextBox. Он также, как и TextBlock, имеет свойства TextWrapping, TextAllignment и
TextReadingOrder. Для задания шрифта текста также применяются свойства FontFamily
, FontSize
. Среди других свойств следует
выделить MaxLength и PlaceholderText
MaxLength устанавливает предельное количество вводимых символов.
Свойство PlaceholderText задает текст по умолчанию, который отображается в поле до ввода в него символов:
<TextBox MaxLength="250" PlaceholderText="Введите текст" Height="40" />
Еще одно интересное свойство IsSpellCheckEnabled позволяет автоматически проверять орфографию:
<TextBox IsSpellCheckEnabled="True" Height="40" />
Если мы введем некорректное значение, то текстовое поле его подчеркнет:
Из событий элемента следует выделить событие TextChanged, которое срабатывает при изменении текста в текстовом поле. Например, подключим обработчик события:
<StackPanel> <TextBox x:Name="textBox1" PlaceholderText="Введите текст" Height="40" TextChanged="TextBox_TextChanged" /> <TextBlock x:Name="textBlock1" Height="40" /> </StackPanel>
А в файле кода пропишем сам обработчик:
private void TextBox_TextChanged(object sender, TextChangedEventArgs e) { string text = textBox1.Text; // получаем введенный текст textBlock1.Text = text; }
PasswordBox применяется для ввода парольной информации. Это тоже самое текстовое поле, только для ввода символов используется маска. Свойство PasswordChar устанавливает символ маски, отображаемый при вводе пароля. Свойство Password задает парольную строку, отображаемую по умолчанию при загрузке окна приложения.
<StackPanel> <PasswordBox PasswordChar="*" Password="12345" /> <PasswordBox Password="12345" /> </StackPanel>