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


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

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

Важные API

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

Например, если текстовое поле используется только для ввода 4-значного PIN-кода, установите для свойства InputScope значение Number. Это сообщает системе, что нужно отобразить раскладку цифровой клавиатуры, благодаря чему пользователю проще вводить 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 scope = new InputScope();
    
  3. Создайте экземпляр нового объекта InputScopeName.

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

    scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
    
  5. Добавьте объект InputScopeName в коллекцию Name объекта 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— если для элемента управления текстом включено прогнозирование текста, система отображает список слов, которые могут начинать вводиться. Вы можете выбрать из списка, чтобы не нужно вводить целое слово. Прогнозирование текста включено по умолчанию.

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

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

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

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

Совет

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

По умолчанию.

<TextBox InputScope="Default"/>

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

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

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

CurrencyAmountAndSymbol

<TextBox InputScope="CurrencyAmountAndSymbol"/>

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

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

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

URL

<TextBox InputScope="Url"/>

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

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

EmailSmtpAddress

<TextBox InputScope="EmailSmtpAddress"/>

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

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

Число

<TextBox InputScope="Number"/>

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

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

TelephoneNumber

<TextBox InputScope="TelephoneNumber"/>

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

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

<TextBox InputScope="Search"/>

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

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

SearchIncremental

<TextBox InputScope="SearchIncremental"/>

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

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

Формула

<TextBox InputScope="Formula"/>

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

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

Чат

<TextBox InputScope="Chat"/>

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

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

NameOrPhoneNumber

<TextBox InputScope="NameOrPhoneNumber"/>

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

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