Table of Contents

Текст

Подпись «Player name» над текстовым полем со строкой «Player 1»

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, чтобы поле было фиксированной ширины.

См. также