Формат ввода
Пользовательский интерфейс многоплатформенного приложения .NET (.NET MAUI) Entry позволяет вводить и изменять одну строку текста. Кроме того, Entry его можно использовать в качестве поля пароля.
Entry определяет следующие свойства:
ClearButtonVisibility
ClearButtonVisibility
Тип , определяет, отображается ли кнопка очистки, которая позволяет пользователю очистить текст. Значение по умолчанию этого свойства гарантирует, что кнопка очистки не отображается.HorizontalTextAlignment
, типа TextAlignment, определяет горизонтальное выравнивание текста.IsPassword
, типаbool
, указывает, должна ли запись визуально скрывать типизированный текст.ReturnCommand
, типа ICommand, определяет команду, выполняемую при нажатии возвращаемого ключа.ReturnCommandParameter
, типobject
, указывает параметр дляReturnCommand
параметра .ReturnType
ReturnType
Тип , указывает внешний вид кнопки возврата.VerticalTextAlignment
, типа TextAlignment, определяет вертикальное выравнивание текста.
Эти свойства поддерживаются объектами BindableProperty, то есть эти свойства можно указывать в качестве целевых для привязки и стилизации данных.
Кроме того, Entry определяет событие, которое возникает Completed
при завершении текста в ключе Entry возврата.
Entry производный от 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
при изменении текста Entry . Объект TextChangedEventArgs
, сопровождающий TextChanged
событие, имеет NewTextValue
и OldTextValue
свойства, которые указывают новый и старый текст соответственно.
Сведения об указании шрифтов в объекте Entryсм. в разделе "Шрифты".
Создание записи
В следующем примере показано, как создать :Entry
<Entry x:Name="entry"
Placeholder="Enter text"
TextChanged="OnEntryTextChanged"
Completed="OnEntryCompleted" />
Эквивалентный код на C# выглядит так:
Entry entry = new Entry { Placeholder = "Enter text" };
entry.TextChanged += OnEntryTextChanged;
entry.Completed += OnEntryCompleted;
На следующем снимка экрана показан результат Entry android:
Примечание.
В iOS клавиатура обратимого ввода может охватывать текстовое поле, когда поле находится в нижней части экрана, что затрудняет ввод текста. Однако в приложении iOS для .NET MAUI страницы автоматически прокручиваются, когда клавиатура обратимого ввода будет охватывать поле ввода текста, чтобы поле было выше клавиатуры обратимого ввода. Метод KeyboardAutoManagerScroll.Disconnect
в Microsoft.Maui.Platform
пространстве имен можно вызвать, чтобы отключить это поведение по умолчанию. Метод KeyboardAutoManagerScroll.Connect
можно вызвать для повторного включения поведения после его отключения.
Введенный текст можно получить, прочитав Text
свойство, и TextChanged
Completed
события сигнализировать о том, что текст изменился или был завершен.
Событие TextChanged
возникает при изменении текста и TextChangedEventArgs
предоставьте текст Entry до и после изменения с помощью OldTextValue
NewTextValue
свойств:
void OnEntryTextChanged(object sender, TextChangedEventArgs e)
{
string oldText = e.OldTextValue;
string newText = e.NewTextValue;
string myText = entry.Text;
}
Событие Completed
возникает, когда пользователь завершил ввод, нажав клавишу Return на клавиатуре или нажав клавишу TAB в Windows. Обработчик события — это универсальный обработчик событий:
void OnEntryCompleted(object sender, EventArgs e)
{
string text = ((Entry)sender).Text;
}
Completed
После срабатывания события любойICommand, указанный ReturnCommand
свойством, выполняется с object
заданным свойством, передаваемым ReturnCommandParameter
свойствуReturnCommand
.
Примечание.
Класс VisualElement , который находится в Entry иерархии наследования, также имеет Focused
и Unfocused
события.
Установка интервалов символов
Интервалы символов можно применить к объекту Entry , задав CharacterSpacing
свойству double
значение:
<Entry ...
CharacterSpacing="10" />
Результатом является то, что символы в тексте, Entry отображаемые пробелами независимо от устройства, отличаются CharacterSpacing
друг от друга.
Примечание.
Значение CharacterSpacing
свойства применяется к тексту, отображаемого свойствами и Placeholder
свойствамиText
.
Ограничение длины входных данных
Свойство MaxLength
можно использовать для ограничения длины входных данных, разрешенной для Entryобъекта . Это свойство должно иметь положительное целое число:
<Entry ...
MaxLength="10" />
MaxLength
Значение свойства 0 указывает, что входные данные не будут разрешены, а значение int.MaxValue
, которое является значением по умолчанию для объектаEntry, указывает, что число введенных символов не ограничено.
Установка длины выделения курсора и позиции курсора
Свойство CursorPosition
можно использовать для возврата или задания позиции, в которой следующий символ будет вставлен в строку, хранящуюся в свойстве Text
:
<Entry Text="Cursor position set"
CursorPosition="5" />
Значение CursorPosition
свойства по умолчанию равно 0, указывающее, что текст будет вставлен в начале.Entry
Кроме того, SelectionLength
свойство можно использовать для возврата или задания длины выделения текста в пределах Entry:
<Entry Text="Cursor position and selection length set"
CursorPosition="2"
SelectionLength="10" />
Значение SelectionLength
свойства по умолчанию равно 0, указывающее, что текст не выбран.
Отображение кнопки "Очистить"
Свойство ClearButtonVisibility
можно использовать для управления Entry отображением кнопки очистки, которая позволяет пользователю очистить текст. Этому свойству должен быть присвоен член перечисления ClearButtonVisibility
:
Never
указывает, что кнопка очистки никогда не будет отображаться. Это значение по умолчанию для свойстваClearButtonVisibility
.WhileEditing
указывает, что в нем Entryбудет отображаться кнопка очистки, а фокус и текст отображаются.
В следующем примере показано задание свойства:
<Entry Text=".NET MAUI"
ClearButtonVisibility="WhileEditing" />
На следующем снимок экрана показан Entry на Android с включенной кнопкой очистки:
Преобразование текста
Объект Entry может преобразовать регистр текста, хранящегося в Text
свойстве, задав TextTransform
свойство значению перечисления TextTransform
. Это перечисление имеет четыре значения:
None
указывает, что текст не будет преобразован.Default
указывает, что будет использоваться поведение по умолчанию для платформы. Это значение по умолчанию для свойстваTextTransform
.Lowercase
указывает, что текст будет преобразован в нижний регистр.Uppercase
указывает, что текст будет преобразован в верхний регистр.
В следующем примере показано преобразование текста в верхний регистр:
<Entry Text="This text will be displayed in uppercase."
TextTransform="Uppercase" />
Невидимая запись текста
EntryIsPassword
предоставляет свойство, визуально скрывающее введенный текст, если задано значение true
:
<Entry IsPassword="true" />
На следующем снимках экрана показано Entry , чьи входные данные были скрыты:
Настройка клавиатуры
Клавиатура обратимого ввода, представленная при взаимодействии пользователей с Entry ним, может быть программно задана через Keyboard
свойство, для одного из следующих свойств из Keyboard
класса:
Chat
— это текстовая клавиатура с эмодзи.Default
— это клавиатура по умолчанию.Email
используется для ввода адресов электронной почты.Numeric
— цифровая клавиатура.Plain
предназначена для ввода текста, если нет заданныхKeyboardFlags
.Telephone
— клавиатура для ввода телефонных номеров.Text
— текстовая клавиатура.Url
— клавиатура для ввода путей к файлам и веб-адресов.
В следующем примере показано задание Keyboard
свойства:
<Entry Keyboard="Chat" />
Класс Keyboard
также имеет фабричный метод Create
, который может использоваться для настройки клавиатуры, задавая регистр букв, проверку орфографии и режим подсказок. Значения перечисления KeyboardFlags
задаются как аргументы метода, при этом возвращается настроенное свойство Keyboard
. Перечисление KeyboardFlags
имеет такие значения:
None
указывает, что клавиатура не имеет никаких дополнительных функций.CapitalizeSentence
указывает, что первые слова во всех вводимых предложениях автоматически начинаются с прописных букв.Spellcheck
указывает, что для вводимого текста выполняется проверка орфографии.Suggestions
указывает, что для вводимых слов предлагается завершение.CapitalizeWord
указывает, что все слова автоматически начинаются с прописных букв.CapitalizeCharacter
указывает, что все символы автоматически пишутся прописными буквами.CapitalizeNone
указывает, что автоматическая подстановка прописных букв не выполняется.All
указывает, что для вводимого текста выполняется проверка орфографии, завершение слов и автоматическое написание предложений с прописной буквы.
В следующем примере кода XAML показано, как настроить значение по умолчанию Keyboard
, чтобы включить предложение завершения слов и написание всех символов прописными буквами:
<Entry Placeholder="Enter text here">
<Entry.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>Suggestions,CapitalizeCharacter</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Entry.Keyboard>
</Entry>
Эквивалентный код на C# выглядит так:
Entry entry = new Entry { Placeholder = "Enter text here" };
entry.Keyboard = Keyboard.Create(KeyboardFlags.Suggestions | KeyboardFlags.CapitalizeCharacter);
Настройка возвращаемого ключа
Внешний вид возвращаемого ключа на клавиатуре обратимого ввода, отображаемой при Entry фокусе, можно настроить, задав ReturnType
свойству значение перечисления ReturnType
:
Default
— указывает, что конкретный ключ возврата не требуется, и используется платформа по умолчанию.Done
— указывает ключ возврата "Готово".Go
— указывает ключ возврата Go.Next
— указывает ключ возврата Next.Search
— указывает ключ возврата "Поиск".Send
— указывает ключ возврата "Отправить".
В следующем примере XAML показано, как задать возвращаемый ключ:
<Entry ReturnType="Send" />
Примечание.
Точный внешний вид возвращаемого ключа зависит от платформы. В iOS ключ возврата является текстовой кнопкой. Однако в Android и Windows возвращаемый ключ является кнопкой на основе значков.
При нажатии клавиши Return событие запускается и выполняется любое ICommand событие, указанное ReturnCommand
Completed
свойством. Кроме того, любой object
, указанный ReturnCommandParameter
свойством, будет передан ICommand в качестве параметра. Дополнительные сведения о командах см. в разделе "Командирование".
Скрытие и отображение клавиатуры обратимого ввода
Класс SoftInputExtensions
в Microsoft.Maui
пространстве имен предоставляет ряд методов расширения, которые поддерживают взаимодействие с клавиатурой обратимого ввода на элементах управления, поддерживающих ввод текста. Класс определяет следующие методы:
IsSoftInputShowing
, который проверяет, отображает ли устройство клавиатуру обратимого ввода.HideSoftInputAsync
, который попытается скрыть клавиатуру обратимого ввода, если она отображается в данный момент.ShowSoftInputAsync
, который попытается показать клавиатуру обратимого ввода, если она в настоящее время скрыта.
В следующем примере показано, как скрыть клавиатуру обратимого ввода в именованном Entry коде entry
, если она отображается в данный момент:
if (entry.IsSoftInputShowing())
await entry.HideSoftInputAsync(System.Threading.CancellationToken.None);
Включение и отключение проверки орфографии
Свойство IsSpellCheckEnabled
определяет, включена ли проверка орфографии. По умолчанию для свойства задано true
значение . Когда пользователь вводит текст, указываются ошибки.
Однако для некоторых сценариев ввода текста, таких как ввод имени пользователя, проверка орфографии обеспечивает отрицательный опыт и должна быть отключена, установив IsSpellCheckEnabled
для свойства false
значение :
<Entry ... IsSpellCheckEnabled="false" />
Примечание.
IsSpellCheckEnabled
Если для свойства задано false
значение , и пользовательская клавиатура не используется, собственный средство проверки орфографии будет отключено. Однако если Keyboard
задано значение, которое отключает проверку орфографии, например Keyboard.Chat
, IsSpellCheckEnabled
свойство игнорируется. Поэтому свойство нельзя использовать для включения проверки орфографии, которая Keyboard
явно отключает его.
Включение и отключение прогнозирования текста
Свойство IsTextPredictionEnabled
определяет, включено ли прогнозирование текста и автоматическое исправление текста. По умолчанию для свойства задано true
значение . По мере ввода текста пользователь представляет прогнозы слов.
Однако для некоторых сценариев ввода текста, таких как ввод имени пользователя, прогнозирование текста и автоматическое исправление текста, обеспечивает отрицательный интерфейс и должен быть отключен, задав IsTextPredictionEnabled
для свойства false
значение :
<Entry ... IsTextPredictionEnabled="false" />
Примечание.
IsTextPredictionEnabled
Если для свойства задано false
значение, а пользовательская клавиатура не используется, прогнозирование текста и автоматическое исправление текста отключается. Однако если Keyboard
задано значение, которое отключает прогнозирование текста, IsTextPredictionEnabled
свойство игнорируется. Поэтому свойство нельзя использовать для включения прогнозирования текста для явного Keyboard
отключения этого свойства.
Запрет ввода текста
Пользователи могут запретить изменять текст в объекте Entry , задав IsReadOnly
для свойства true
значение :
<Entry Text="User input won't be accepted."
IsReadOnly="true" />