Текст

TextBlock показывает текст: подписи, заголовки, надписи. TextBox позволяет игроку ввести одну строку текста, например имя или сид.
Разметка
<!-- TextBlock shows text; TextBox edits it. -->
<StackPanel Orientation="Vertical" Width="240">
<TextBlock FontSize="20" Margin="0,0,0,8">Player name</TextBlock>
<TextBox Text="{Binding PlayerName, Mode=TwoWay}" />
</StackPanel>
Text текстового поля по умолчанию привязывается в обе стороны, поэтому то, что вводит игрок, попадает обратно в
свойство PlayerName модели представления; Mode=TwoWay в примере написан только для наглядности.
Основные свойства
| Свойство | Описание |
|---|---|
| Text / Text | Показываемый или редактируемый текст. |
| FontFamily | Имя семейства шрифтов. Без него используется семейство по умолчанию из конфигурации (Segoe UI с настройками движков по умолчанию). |
| FontSize | Размер в пикселях. |
| FontStyle | Обычный, полужирный, курсив. |
| Foreground | Цвет текста. Тема по умолчанию делает его светлым. |
Свойства шрифта не наследуются: задайте их каждому текстовому элементу или сразу всем — неявным Style.
События и команды
TextChanged срабатывает при каждом изменении. С привязкой оно обычно не нужно: вместо этого меняется привязанное свойство.
Если текстовое поле двусторонне привязано к числу, а игрок вводит что-то, что числом не является, привязка сохраняет
прежнее значение, а поле показывает состояние Invalid (красная рамка в теме по умолчанию), пока текст снова не станет
числом.
Стиль
Тема по умолчанию делает текст TextBlock светлым, а TextBox даёт тёмный фон и рамку. Визуальные состояния текстового
поля — Focused, Invalid и FocusedInvalid.
Если шрифт не найден, текст рисуется резервным шрифтом конфигурации, а IcyUI один раз пишет предупреждение об этом семействе в журнал. См. Шрифты на других платформах.
Клавиатура, геймпад и сенсорный ввод
Текстовое поле в фокусе принимает вводимый текст. Стрелки влево и вправо двигают курсор ввода, Home и End переносят его в начало и конец, Backspace и Delete удаляют символы. На краях текста стрелки влево и вправо, как всегда стрелки вверх и вниз, переводят фокус к соседнему элементу, поэтому с геймпада из поля можно выйти крестовиной. При вводе за правый край текст прокручивается, чтобы курсор оставался видимым.
Примечание
Выделение текста (Shift+стрелки, перетаскивание) и буфер обмена пока не поддерживаются.
TextBlock
Подстраивается под свой текст: одна строка высотой с межстрочное расстояние шрифта, поэтому буквы вроде y и g не обрезаются.
TextBox
Однострочное поле. Подстраивается под текст; задайте Width, чтобы поле было фиксированной ширины.
См. также
- Шрифты на других платформах.
- Панели — как выровнять подписи и поля ввода.