Редактор
Многоплатформенный пользовательский интерфейс приложения .NET (.NET MAUI) Editor позволяет вводить и изменять несколько строк текста.
Editor определяет следующие свойства:
AutoSize
EditorAutoSizeOption
Тип , определяет, будет ли редактор изменять размер, чтобы разместить входные данные пользователя. По умолчанию редактор не имеет автоматического размера.HorizontalTextAlignment
, типа TextAlignment, определяет горизонтальное выравнивание текста.VerticalTextAlignment
, типа TextAlignment, определяет вертикальное выравнивание текста.
Эти свойства поддерживаются объектами BindableProperty, то есть эти свойства можно указывать в качестве целевых для привязки и стилизации данных.
Кроме того, Editor определяет событие, которое возникает Completed
при завершении текста в ключе Editor возврата.
Editor производный от InputView класса, от которого он наследует следующие свойства:
CharacterSpacing
, типdouble
, задает интервал между символами в введенном тексте.CursorPosition
int
Тип , определяет положение курсора в редакторе.FontAttributes
, типаFontAttributes
, определяет стиль текста.FontAutoScalingEnabled
bool
Тип , определяет, будет ли текст отражать параметры масштабирования, заданные в операционной системе. Значение по умолчанию этого свойства равноtrue
.FontFamily
, типstring
, определяет семейство шрифтов.FontSize
, типdouble
, определяет размер шрифта.IsReadOnly
bool
Тип , определяет, следует ли запретить пользователю изменять текст. Значение по умолчанию этого свойства равноfalse
.IsSpellCheckEnabled
bool
Тип , определяет, включена ли проверка орфографии.IsTextPredictionEnabled
Тип , определяет, включено ли прогнозированиеbool
текста и автоматическое исправление текста.Keyboard
( типKeyboard
) указывает клавиатуру обратимого ввода, отображаемую при вводе текста.MaxLength
, типint
, определяет максимальную длину входных данных.Placeholder
string
Тип , определяет текст, отображаемый при пустом элементе управления.PlaceholderColor
, тип Color, определяет цвет заполнителя текста.SelectionLength
int
Тип , представляет длину выделенного текста в элементе управления.Text
string
Тип , определяет текст, введенный в элемент управления.TextColor
ColorТип , определяет цвет введенного текста.TextTransform
TextTransform
Тип , указывает регистр введенного текста.
Эти свойства поддерживаются объектами BindableProperty, то есть эти свойства можно указывать в качестве целевых для привязки и стилизации данных.
Кроме того, InputView определяет событие, которое возникает TextChanged
при изменении текста Editor . Объект TextChangedEventArgs
, сопровождающий TextChanged
событие, имеет NewTextValue
и OldTextValue
свойства, которые указывают новый и старый текст соответственно.
Сведения об указании шрифтов в объекте Editorсм. в разделе "Шрифты".
Создание редактора
В следующем примере показано, как создать :Editor
<Editor x:Name="editor"
Placeholder="Enter your response here"
HeightRequest="250"
TextChanged="OnEditorTextChanged"
Completed="OnEditorCompleted" />
Эквивалентный код на C# выглядит так:
Editor editor = new Editor { Placeholder = "Enter text", HeightRequest = 250 };
editor.TextChanged += OnEditorTextChanged;
editor.Completed += OnEditorCompleted;
На следующем снимка экрана показан результат Editor android:
Примечание.
В iOS клавиатура обратимого ввода может охватывать текстовое поле, когда поле находится в нижней части экрана, что затрудняет ввод текста. Однако в приложении iOS для .NET MAUI страницы автоматически прокручиваются, когда клавиатура обратимого ввода будет охватывать поле ввода текста, чтобы поле было выше клавиатуры обратимого ввода. Метод KeyboardAutoManagerScroll.Disconnect
в Microsoft.Maui.Platform
пространстве имен можно вызвать, чтобы отключить это поведение по умолчанию. Метод KeyboardAutoManagerScroll.Connect
можно вызвать для повторного включения поведения после его отключения.
Введенный текст можно получить, прочитав Text
свойство, и TextChanged
Completed
события сигнализировать о том, что текст изменился или был завершен.
Событие TextChanged
возникает при изменении текста и TextChangedEventArgs
предоставьте текст Editor до и после изменения с помощью OldTextValue
NewTextValue
свойств:
void OnEditorTextChanged(object sender, TextChangedEventArgs e)
{
string oldText = e.OldTextValue;
string newText = e.NewTextValue;
string myText = editor.Text;
}
Событие Completed
возникает только в Windows, если пользователь завершил ввод, нажав клавишу TAB на клавиатуре или фокусируя другой элемент управления. Обработчик события — это универсальный обработчик событий:
void OnEditorCompleted(object sender, EventArgs e)
{
string text = ((Editor)sender).Text;
}
Установка интервалов символов
Интервалы символов можно применить к объекту Editor , задав CharacterSpacing
свойству double
значение:
<Editor ...
CharacterSpacing="10" />
Результатом является то, что символы в тексте, Editor отображаемые пробелами независимо от устройства, отличаются CharacterSpacing
друг от друга.
Примечание.
Значение CharacterSpacing
свойства применяется к тексту, отображаемого свойствами и Placeholder
свойствамиText
.
Ограничение длины входных данных
Свойство MaxLength
можно использовать для ограничения длины входных данных, разрешенной для Editorобъекта . Это свойство должно иметь положительное целое число:
<Editor ... MaxLength="10" />
MaxLength
Значение свойства 0 указывает, что входные данные не будут разрешены, а значение int.MaxValue
, которое является значением по умолчанию для объектаEditor, указывает, что число введенных символов не ограничено.
Автоматический размер редактора
Можно Editor выполнить автоматическое масштабирование содержимого, задав Editor.AutoSize
для TextChanges
свойства значение , которое является значением перечисления EditorAutoSizeOption
. Это перечисление имеет два значения:
Disabled
указывает, что автоматическое изменение размера отключено и является значением по умолчанию.TextChanges
указывает, что автоматическое изменение размера включено.
Это можно обеспечить, выполнив следующие действия.
<Editor Text="Enter text here"
AutoSize="TextChanges" />
При включении автоматического Editor изменения размера высота увеличивается при заполнении пользователем текста, а высота уменьшается по мере удаления текста пользователем. Это можно использовать, чтобы обеспечить Editor правильность размеров объектов DataTemplate CollectionView .
Внимание
Не Editor будет автоматический размер, если HeightRequest свойство задано.
Преобразование текста
Объект Editor может преобразовать регистр текста, хранящегося в Text
свойстве, задав TextTransform
свойство значению перечисления TextTransform
. Это перечисление имеет четыре значения:
None
указывает, что текст не будет преобразован.Default
указывает, что будет использоваться поведение по умолчанию для платформы. Это значение по умолчанию для свойстваTextTransform
.Lowercase
указывает, что текст будет преобразован в нижний регистр.Uppercase
указывает, что текст будет преобразован в верхний регистр.
В следующем примере показано преобразование текста в верхний регистр:
<Editor Text="This text will be displayed in uppercase."
TextTransform="Uppercase" />
Настройка клавиатуры
Клавиатура, представленная при взаимодействии пользователей с Editor ним, может быть программно задана через Keyboard
свойство, в одно из следующих свойств из Keyboard
класса:
Chat
— это текстовая клавиатура с эмодзи.Default
— это клавиатура по умолчанию.Email
используется для ввода адресов электронной почты.Numeric
— цифровая клавиатура.Plain
предназначена для ввода текста, если нет заданныхKeyboardFlags
.Telephone
— клавиатура для ввода телефонных номеров.Text
— текстовая клавиатура.Url
— клавиатура для ввода путей к файлам и веб-адресов.
В следующем примере показано задание Keyboard
свойства:
<Editor Keyboard="Chat" />
Класс Keyboard
также имеет фабричный метод Create
, который может использоваться для настройки клавиатуры, задавая регистр букв, проверку орфографии и режим подсказок. Значения перечисления KeyboardFlags
задаются как аргументы метода, при этом возвращается настроенное свойство Keyboard
. Перечисление KeyboardFlags
имеет такие значения:
None
указывает, что клавиатура не имеет никаких дополнительных функций.CapitalizeSentence
указывает, что первые слова во всех вводимых предложениях автоматически начинаются с прописных букв.Spellcheck
указывает, что для вводимого текста выполняется проверка орфографии.Suggestions
указывает, что для вводимых слов предлагается завершение.CapitalizeWord
указывает, что все слова автоматически начинаются с прописных букв.CapitalizeCharacter
указывает, что все символы автоматически пишутся прописными буквами.CapitalizeNone
указывает, что автоматическая подстановка прописных букв не выполняется.All
указывает, что для вводимого текста выполняется проверка орфографии, завершение слов и автоматическое написание предложений с прописной буквы.
В следующем примере кода XAML показано, как настроить значение по умолчанию Keyboard
, чтобы включить предложение завершения слов и написание всех символов прописными буквами:
<Editor>
<Editor.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>Suggestions,CapitalizeCharacter</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Editor.Keyboard>
</Editor>
Эквивалентный код на C# выглядит так:
Editor editor = new Editor();
editor.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);
Скрытие и отображение клавиатуры обратимого ввода
Класс SoftInputExtensions
в Microsoft.Maui
пространстве имен предоставляет ряд методов расширения, которые поддерживают взаимодействие с клавиатурой обратимого ввода на элементах управления, поддерживающих ввод текста. Класс определяет следующие методы:
IsSoftInputShowing
, который проверяет, отображает ли устройство клавиатуру обратимого ввода.HideSoftInputAsync
, который попытается скрыть клавиатуру обратимого ввода, если она отображается в данный момент.ShowSoftInputAsync
, который попытается показать клавиатуру обратимого ввода, если она в настоящее время скрыта.
В следующем примере показано, как скрыть клавиатуру обратимого ввода в именованном Editor коде editor
, если она отображается в данный момент:
if (editor.IsSoftInputShowing())
await editor.HideSoftInputAsync(System.Threading.CancellationToken.None);
Включение и отключение проверки орфографии
Свойство IsSpellCheckEnabled
определяет, включена ли проверка орфографии. По умолчанию для свойства задано true
значение . Когда пользователь вводит текст, указываются ошибки.
Однако для некоторых сценариев ввода текста, таких как ввод имени пользователя, проверка орфографии обеспечивает отрицательный интерфейс и поэтому следует отключить, установив IsSpellCheckEnabled
для false
свойства значение :
<Editor ... IsSpellCheckEnabled="false" />
Примечание.
IsSpellCheckEnabled
Если для свойства задано false
значение , и пользовательская клавиатура не используется, собственный средство проверки орфографии будет отключено. Однако если Keyboard
задано значение, которое отключает проверку орфографии, например Keyboard.Chat
, IsSpellCheckEnabled
свойство игнорируется. Поэтому свойство нельзя использовать для включения проверки орфографии, которая Keyboard
явно отключает его.
Включение и отключение прогнозирования текста
Свойство IsTextPredictionEnabled
определяет, включено ли прогнозирование текста и автоматическое исправление текста. По умолчанию для свойства задано true
значение . По мере ввода текста пользователь представляет прогнозы слов.
Однако для некоторых сценариев ввода текста, таких как ввод имени пользователя, прогнозирование текста и автоматическое исправление текста, обеспечивает отрицательный интерфейс и должен быть отключен, задав IsTextPredictionEnabled
для свойства false
значение :
<Editor ... IsTextPredictionEnabled="false" />
Примечание.
IsTextPredictionEnabled
Если для свойства задано false
значение, а пользовательская клавиатура не используется, прогнозирование текста и автоматическое исправление текста отключается. Однако если Keyboard
задано значение, которое отключает прогнозирование текста, IsTextPredictionEnabled
свойство игнорируется. Поэтому свойство нельзя использовать для включения прогнозирования текста для явного Keyboard
отключения этого свойства.
Запрет ввода текста
Пользователям может быть запрещено изменять текст в свойстве Editor IsReadOnly
, которое имеет значение false
по умолчанию , в true
:
<Editor Text="This is a read-only Editor"
IsReadOnly="true" />