Поделиться через


Использование области ввода для изменения сенсорной клавиатуры

Чтобы упростить пользователям ввод данных с помощью сенсорной клавиатуры или панели функционального ввода (ПФВ), можно настроить область ввода элемента управления текстом в соответствии с ожидаемым типом данных, которые будут вводить пользователи.

Важные API

Сенсорная клавиатура может использоваться для записи текста при запуске приложения на устройстве с сенсорным экраном. Сенсорный клавиатура вызывается, когда пользователь нажимает на редактируемое поле ввода, например TextBox или RichEditBox. Вы можете значительно ускорить и упростить ввод данных пользователями в вашем приложении, настроив область ввода текстового элемента управления так, чтобы она соответствовала типу данных, которые пользователь вводит. Тип вводимых данных предоставляет системе подсказку о типе текстового ввода, ожидаемого элементом управления. Благодаря этому система может отобразить специальную раскладку сенсорной клавиатуры в соответствии с используемым типом ввода.

Например, если текстовое поле используется только для ввода 4-значного ПИН-кода, задайте для свойства inputScope значениечисло. Это сообщает системе, что нужно отобразить раскладку цифровой клавиатуры, благодаря чему пользователю проще вводить PIN-код.

Это важно

  • Эта информация относится только к SIP. Он не применяется к аппаратным клавиатурам или экранной клавиатуре, доступной в параметрах "Простота доступа Windows".
  • Область ввода не приводит к выполнению какой-либо проверки ввода и не запрещает пользователю предоставлять входные данные с помощью аппаратной клавиатуры или другого устройства ввода. Вы по-прежнему несете ответственность за проверку входных данных в коде по мере необходимости.

Изменение области ввода элемента управления текстом

Входные области, доступные вашему приложению, являются членами перечисления InputScopeNameValue. Для свойства InputScope элемента управления TextBox или RichEditBox можно установить одно из этих значений.

Это важно

Свойство InputScope в PasswordBox поддерживает только значения Password и NumericPin. Любое другое значение игнорируется.

Здесь вы изменяете область ввода нескольких текстовых полей, чтобы соответствовать ожидаемым данным для каждого текстового поля.

Изменение области ввода в XAML

  1. В XAML-файле страницы найдите тег для элемента управления текстом, который требуется изменить.

  2. Добавьте атрибут InputScope в тег и укажите значение InputScopeNameValue, соответствующее ожидаемым вводным данным.

    Ниже приведены некоторые текстовые поля, которые могут отображаться в обычной форме контакта с клиентом. При наборе InputScope сенсорный клавиатура с подходящим макетом для данных отображается для каждого текстового поля.

    <StackPanel Width="300">
        <TextBox Header="Name" InputScope="Default"/>
        <TextBox Header="Email Address" InputScope="EmailSmtpAddress"/>
        <TextBox Header="Telephone Number" InputScope="TelephoneNumber"/>
        <TextBox Header="Web site" InputScope="Url"/>
    </StackPanel>
    

Изменение области ввода в коде

  1. В XAML-файле страницы найдите тег для элемента управления текстом, который требуется изменить. Если он не задан, задайте атрибут x:Name , чтобы вы могли ссылаться на элемент управления в коде.

    <TextBox Header="Telephone Number" x:Name="phoneNumberTextBox"/>
    
  2. Создайте новый объект InputScope InputScope.

    InputScope scope = new InputScope();
    
  3. Создайте новый экземпляр объекта InputScopeName .

    InputScopeName scopeName = new InputScopeName();
    
  4. Установите значение свойства NameValue объекта InputScopeName на значение из перечисления InputScopeNameValue.

    scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
    
  5. Добавьте объект InputScopeName в коллекцию объекта InputScope.

    scope.Names.Add(scopeName);
    
  6. Задайте объект InputScope в качестве значения свойства inputScope элемента управления текстом.

    phoneNumberTextBox.InputScope = scope;
    

Вот весь код вместе.

InputScope scope = new InputScope();
InputScopeName scopeName = new InputScopeName();
scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
scope.Names.Add(scopeName);
phoneNumberTextBox.InputScope = scope;

Те же действия можно сжать в этот сокращенный код.

phoneNumberTextBox.InputScope = new InputScope() 
{
    Names = {new InputScopeName(InputScopeNameValue.TelephoneNumber)}
};

Прогнозирование текста, проверка орфографии и автоматическое исправление

Элементы управления TextBox и RichEditBox имеют несколько свойств, влияющих на поведение SIP. Чтобы обеспечить лучший интерфейс для пользователей, важно понять, как эти свойства влияют на ввод текста с помощью сенсорного ввода.

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

    Для области ввода по умолчанию это свойство также позволяет автоматически писать первое слово в предложении с заглавной буквы и автоматически исправлять ошибки при вводе текста. Эти функции автоматического исправления могут быть отключены в других областях ввода. Дополнительные сведения см. в таблицах далее в этом разделе.

  • IsTextPredictionEnabled— если для текстового элемента управления включен прогноз текста, система показывает список слов, которые вы можете начинать вводить. Вы можете выбрать из списка, чтобы не нужно вводить целое слово. Прогнозирование текста включено по умолчанию.

    Прогнозирование текста может быть отключено, если область ввода отличается от по умолчанию, даже если свойство IsTextPredictionEnabledtrue. Дополнительные сведения см. в таблицах далее в этом разделе.

  • PreventKeyboardDisplayOnProgrammaticFocus— если это свойство true, система не позволяет системе отображать SIP при программном установке фокуса на текстовом элементе управления. Вместо этого клавиатура отображается только при взаимодействии пользователя с элементом управления.

Индекс сенсорной клавиатуры для Windows

В этих таблицах показаны макеты панели обратимого ввода Windows (SIP) для общих значений области ввода. Эффект применения области ввода на функции, активируемые свойствами IsSpellCheckEnabled и IsTextPredictionEnabled, перечислен для каждой области ввода. Это не полный список доступных областей ввода.

Подсказка

Вы можете переключать большинство сенсорных клавиатур между алфавитным макетом и макетом чисел и символов, нажав клавишу &123 , чтобы изменить макет чисел и символов, и нажать клавишу abcd , чтобы изменить алфавитный макет.

По умолчанию

<TextBox InputScope="Default"/>

Сенсорная клавиатура Windows по умолчанию.

Сенсорная клавиатура Windows по умолчанию

  • Проверка орфографии: включена, если IsSpellCheckEnabled = , отключено, если IsSpellCheckEnabled = false
  • Автоматическое исправление: включено, если IsSpellCheckEnabled = true, отключено, если IsSpellCheckEnabled = false
  • Автоматическое использование заглавных букв: включено, если IsSpellCheckEnabled = true, отключено, если IsSpellCheckEnabled = false
  • Прогнозирование текста: включено, если IsTextPredictionEnabled = true, отключено, если IsTextPredictionEnabled = false

СуммаИВалюта

<TextBox InputScope="CurrencyAmountAndSymbol"/>

Раскладка клавиатуры по умолчанию для чисел и символов.

сенсорная клавиатура Windows для ввода валюты

  • Включает клавиши слева и справа на странице для отображения дополнительных символов
  • Проверка орфографии: по умолчанию можно отключить
  • Автоматическое исправление: по умолчанию можно отключить
  • Автоматическое использование заглавных букв: всегда отключено
  • Прогнозирование текста: по умолчанию можно отключить

URL-адрес

<TextBox InputScope="Url"/>

сенсорная клавиатура Windows для URL-адресов

  • Включает клавиши .com и go Go. Нажмите и удерживайте клавишу .com , чтобы отобразить дополнительные параметры (.org, .net и суффиксы для конкретных регионов)
  • Включает клавиши ,, -и /
  • Проверка орфографии: по умолчанию выключена, можно включить
  • Автоматическое исправление: по умолчанию выключено, можно включить
  • Автоматическое использование заглавных букв: отключено по умолчанию, может быть включено
  • Прогнозирование текста: по умолчанию выключено, может быть включено.

АдресSMTPпочты

<TextBox InputScope="EmailSmtpAddress"/>

сенсорная клавиатура Windows для адресов электронной почты

  • Включает ключи @ и .com. Нажмите и удерживайте клавишу .com , чтобы отобразить дополнительные параметры (.org, .net и суффиксы для конкретных регионов)
  • Включает _ и - ключи
  • Проверка орфографии: по умолчанию выключена, можно включить
  • Автоматическое исправление: по умолчанию выключено, можно включить
  • Автоматическое использование заглавных букв: отключено по умолчанию, может быть включено
  • Прогнозирование текста: по умолчанию выключено, может быть включено.

Номер

<TextBox InputScope="Number"/>

сенсорной клавиатуры Windows для чисел

  • Проверка орфографии: по умолчанию можно отключить
  • Автоматическое исправление: по умолчанию можно отключить
  • Автоматическое использование заглавных букв: всегда отключено
  • Прогнозирование текста: по умолчанию можно отключить

Номер телефона

<TextBox InputScope="TelephoneNumber"/>

сенсорная клавиатура Windows для набора телефонных номеров

  • Проверка орфографии: по умолчанию можно отключить
  • Автоматическое исправление: по умолчанию можно отключить
  • Автоматическое использование заглавных букв: всегда отключено
  • Прогнозирование текста: по умолчанию можно отключить

<TextBox InputScope="Search"/>

сенсорная клавиатура Windows для поиска

  • Включает клавишу поиск вместо клавиши ввод
  • Проверка орфографии: по умолчанию можно отключить
  • Автоматическое исправление: по умолчанию можно отключить
  • Автоматическое использование заглавных букв: всегда отключено
  • Прогнозирование текста: по умолчанию можно отключить

SearchIncremental

<TextBox InputScope="SearchIncremental"/>

сенсорная клавиатура Windows для инкрементного поиска

  • Тот же макет, что и у (по умолчанию).
  • Проверка орфографии: по умолчанию выключена, можно включить
  • Автоматическое исправление: всегда отключено
  • Автоматическое использование заглавных букв: всегда отключено
  • Прогнозирование текста: всегда отключено

Формула

<TextBox InputScope="Formula"/>

сенсорная клавиатура Windows для формулы

  • Включает ключ =
  • Также включает %, $ и + ключи
  • Проверка орфографии: по умолчанию можно отключить
  • Автоматическое исправление: по умолчанию можно отключить
  • Автоматическое использование заглавных букв: всегда отключено
  • Прогнозирование текста: по умолчанию можно отключить

Чат

<TextBox InputScope="Chat"/>

Сенсорная клавиатура Windows по умолчанию

  • Тот же макет, что и у (по умолчанию).
  • Проверка орфографии: по умолчанию можно отключить
  • Автоматическое исправление: по умолчанию можно отключить
  • Автоматическое преобразование в заглавные буквы: по умолчанию, может быть отключено
  • Прогнозирование текста: по умолчанию можно отключить

ИмяИлиНомерТелефона

<TextBox InputScope="NameOrPhoneNumber"/>

Сенсорная клавиатура Windows по умолчанию

  • Тот же макет, что и у (по умолчанию).
  • Проверка орфографии: по умолчанию выключена, можно включить
  • Автоматическое исправление: по умолчанию выключено, можно включить
  • Автоматическая заглавная буква: по умолчанию может быть включена (первая буква каждого слова — прописная буква).
  • Прогнозирование текста: по умолчанию выключено, может быть включено.