Перейти к содержанию

TextEditor

Контрол TextEditor предоставляет базовые возможности редактирования текста. Он поддерживает маски, которые позволяют ограничивать ввод пользователя и форматировать значения.

texteditor

Основные возможности контрола включают:

  • Поддержку однострочного и многострочного текста.
  • Перенос текста.
  • Использование масок для задания шаблона ввода данных.
  • Использование масок для форматирования значений, когда редактор не в фокусе.
  • Выделение текста.
  • Водяные знаки

Задание текста и настройка параметров текста

Свойство TextEditor.EditorValue задаёт текст редактора. Если текст содержит символы NewLine, редактор отображает текст на нескольких строках.

Перенос текста

Свойство TextEditor.TextWrapping позволяет активировать автоматический перенос текста у правого края редактора. Установите это свойство в значение Avalonia.Media.TextWrapping.Wrap, чтобы включить обычный режим переноса текста.

Приём клавиш Tab и Enter при вводе

Пользователи могут нажимать клавиши Tab и Enter, чтобы вставлять символы Tab и Return в текст. Вы можете использовать следующие опции, чтобы изменить это поведение:

  • TextEditor.AcceptsReturn — задаёт, вставляется ли символ NewLine при нажатии клавиши Enter. Если это свойство отключено, редактор игнорирует клавишу Enter.
  • TextEditor.AcceptsTab — задаёт, вставляется ли символ табуляции при нажатии клавиши Tab. Если это свойство отключено, фокус перемещается на следующий контрол в порядке табуляции при нажатии клавиши Tab.

Маски

Маска, применённая к текстовому редактору, направляет пользователя вводить значения в соответствии с заданным шаблоном. Ввод с маской по умолчанию включён для контролов DateEditor и SpinEditor и отключён для других текстовых редакторов.

Чтобы включить ввод с маской, сделайте следующее:

  • Установите свойство TextEditor.MaskType в тип маски.
  • Установите свойство TextEditor.Mask в маску.

Тип маски

Свойство TextEditor.MaskType позволяет выбрать режим маски из следующих опций:

  • MaskType.Numeric — режим маски, предназначенный для приёма числовых значений.
  • MaskType.DateTime — режим маски, предназначенный для приёма значений даты-времени.
  • MaskType.None — ввод с маской отключён.

Строки маски

Используйте свойство TextEditor.Mask, чтобы задать строку, определяющую маску. Маска составляется из спецификаторов маски, специфичных для выбранного типа маски.

Дополнительную информацию смотрите в следующих разделах:

Пример - разрешение ввода целочисленных значений в текстовом редакторе

Следующий код применяет числовую маску "d", чтобы ограничить ввод данных целочисленными значениями в TextEditor.

texteditor-numericmask-d

xmlns:mxe="https://schemas.eremexcontrols.net/avalonia/editors"

<mxe:TextEditor Name="textEditor1" MaskType="Numeric" Mask="d" 
 HorizontalContentAlignment="Right"/>

Использование маски как формата отображения

Маску, заданную свойством TextEditor.Mask, можно использовать для форматирования значения редактора в режиме отображения (когда редактирование текста не активно). Эту настройку задаёт свойство TextEditor.MaskUseAsDisplayFormat. Значение свойства по умолчанию — true.

Настройки культуры маски

Многие маски зависят от текущей культуры. Например, десятичный разделитель для числовых масок различается в разных культурах. Значения даты-времени форматируются с использованием специфичных для культуры шаблонов и локализованных названий дней недели и месяцев.

Свойство TextEditor.MaskCulture позволяет задать культуру, используемую маской. Если это свойство не задано, используется культура приложения по умолчанию.

Пример

Следующий код задаёт числовую маску "c" для ввода денежных значений в текстовом редакторе и применяет к маске культуру китайскую (упрощённую).

texteditor-mask-currency-chinese

textEditor1.EditorValue = 12.34567;
textEditor1.MaskType = Eremex.AvaloniaUI.Controls.Editors.MaskType.Numeric;
textEditor1.MaskCulture = new CultureInfo("zh-CN");
textEditor1.Mask = "c";

Выделение текста

Пользователь может выделять текст с помощью мыши и клавиатуры.

Чтобы выделить часть текста и очистить выделение в коде, используйте следующий API:

  • TextEditor.SelectionStart — индекс (начиная с нуля) начального символа выделения текста.
  • TextEditor.SelectionEnd — индекс (начиная с нуля) конечного символа выделения текста.
  • TextEditor.SelectAll — выделяет весь текст.
  • TextEditor.ClearSelection — снимает выделение с выделенного текста.

Водяные знаки

Контрол TextEditor и его потомки поддерживают водяные знаки. Водяной знак — это серая подсказка, отображаемая, когда значение редактора пусто или равно null.

texteditor-watermark

Используйте свойство TextEditor.Watermark, чтобы задать водяной знак.

xmlns:mxe="https://schemas.eremexcontrols.net/avalonia/editors"

<mxe:TextEditor Name="textEditor1" Watermark="Type to search"/>

Смотрите также



* Эта страница переведена с использованием технологий машинного перевода.