使用輸入範圍來變更觸控式鍵盤

為協助使用者使用觸控式鍵盤或螢幕輸入面板 (SIP) 輸入資料,您可以設定文字控制項的輸入範圍,使其符合使用者要輸入的資料類型。

重要 API

當您的應用程式在具備觸控式螢幕的裝置上執行時,可以使用觸控式鍵盤輸入文字。 當使用者點選可編輯的輸入欄位,例如 TextBoxRichEditBox時,就會叫用觸控式鍵盤。 您可以藉由將文字控制項的 輸入範圍 設定為符合您預期使用者輸入的資料種類,讓使用者更輕鬆地在應用程式中輸入資料。 輸入範圍會提供控制項所預期之文字輸入類型的提示給系統,讓系統可以為該輸入類型提供專用的觸控式鍵盤配置。

例如,如果文字方塊只用來輸入 4 位數 PIN,請將 InputScope 屬性設定為 Number。 這會告訴系統顯示數字小鍵盤,方便使用者輸入 PIN。

重要

  • 此資訊只適用於 SIP。 它並不適用於硬體鍵盤或 Windows [輕鬆存取] 選項中提供的 [螢幕小鍵盤]。
  • 輸入範圍並不會導致執行任何輸入驗證,也不會防止使用者透過硬體鍵盤或其他輸入裝置提供任何輸入。 您仍然必須視需要在程式碼中驗證輸入。

變更文字控制項的輸入範圍

您的應用程式中可用的輸入範圍是 InputScopeNameValue 列舉的成員。 您可以將 TextBoxRichEditBoxInputScope 屬性設定成這些值的其中之一。

重要

PasswordBox上的InputScope屬性僅支援PasswordNumericPin值。 會略過其他任何值。

您會在這裡變更數個文字方塊的輸入範圍,使其符合每個文字方塊的預期資料。

在 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. InputScopeName 物件的 NameValue 屬性設定為 InputScopeNameValue 列舉的值。

    scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
    
  5. InputScopeName 物件新增到 InputScope 物件的 Names 集合。

    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)}
};

文字預測、拼字檢查及自動校正

TextBoxRichEditBox 控制項有數個影響 SIP 行為的屬性。 若要為使用者提供最佳的體驗,了解這些屬性如何影響使用觸控進行的文字輸入,就相當重要。

  • IsSpellCheckEnabled ─ 當為文字控制項啟用拼字檢查時,該控制項會與系統的拼字檢查引擎互動,將無法辨識的單字標示出來。 您可以點選單字以查看建議的校正清單。 預設會啟用拼字檢查功能。

    對於 Default 輸入範圍,這個屬性也可以自動大寫句子中的第一個字,並自動校正您輸入的文字。 這些自動校正功能在其他輸入範圍可能會停用。 如需詳細資訊,請參閱本主題稍後的表格。

  • IsTextPredictionEnabled — 文字控制項啟用文字預測時,系統會顯示您可能正開始輸入的文字清單。 您可以從清單中選取單字,這樣您就不必輸入整個單字。 文字預測預設為啟用。

    如果輸入範圍不是 Default,則即使 IsTextPredictionEnabled 屬性為 true,也可能停用文字預測功能。能。 如需詳細資訊,請參閱本主題稍後的表格。

  • PreventKeyboardDisplayOnProgrammaticFocus — 此屬性是 true 時,當焦點透過程式設計設定在文字控制項上時,系統將不會顯示 SIP。 取而代之的是,只有當使用者與控制項互動時,才會顯示鍵盤。

適用于Windows的觸控式鍵盤索引

這些表格顯示一般輸入範圍值的Windows軟體輸入面板 (SIP) 配置。 針對每個輸入範圍,會列出對 IsSpellCheckEnabledIsTextPredictionEnabled 屬性所啟用之功能的輸入範圍效果。 這並非可用之輸入範圍的完整清單。

提示

您可以按& 123鍵變更為數位與符號配置,在字母配置與數位與符號配置之間切換大部分觸控式鍵盤,然後按abcd鍵以變更為字母版面配置。

預設

<TextBox InputScope="Default"/>

預設Windows觸控式鍵盤。

Default Windows touch keyboard

  • 拼字檢查:如果IsSpellCheckEnabledtrue = 啟用,如果IsSpellCheckEnabledfalse = 則停用
  • 自動校正:如果IsSpellCheckEnabledtrue = 啟用,如果IsSpellCheckEnabledfalse = 則停用
  • 自動大寫:如果IsSpellCheckEnabledtrue = 啟用,如果IsSpellCheckEnabledfalse = 則停用
  • 文字預測:如果IsTextPredictionEnabledtrue = ,則會停用IsTextPredictionEnabledfalse =

CurrencyAmountAndSymbol

<TextBox InputScope="CurrencyAmountAndSymbol"/>

預設的數字和符號鍵盤配置。

Windows touch keyboard for currency

  • 包含頁面左/右鍵以顯示更多符號
  • 拼字檢查:預設為開啟,可以停用
  • 自動校正:預設為開啟,可以停用
  • 自動大寫:一律停用
  • 文字預測:預設為開啟,可以停用

Url

<TextBox InputScope="Url"/>

Windows touch keyboard for URLs

  • 包含 .comgo key (Go) 鍵。 按住 .com 鍵以顯示 (.org.net和區域特定尾碼的其他選項)
  • 包含 -/ 索引鍵
  • 拼字檢查:預設為關閉,可以啟用
  • 自動校正:預設為關閉,可以啟用
  • 自動大寫:預設為關閉,可以啟用
  • 文字預測:預設為關閉,可以啟用

EmailSmtpAddress

<TextBox InputScope="EmailSmtpAddress"/>

Windows touch keyboard for email addresses

  • 包含 @.com 鍵。 按住 .com 鍵以顯示 (.org.net和區域特定尾碼的其他選項)
  • 包含 _- 索引鍵
  • 拼字檢查:預設為關閉,可以啟用
  • 自動校正:預設為關閉,可以啟用
  • 自動大寫:預設為關閉,可以啟用
  • 文字預測:預設為關閉,可以啟用

數字

<TextBox InputScope="Number"/>

Windows touch keyboard for numbers

  • 拼字檢查:預設為開啟,可以停用
  • 自動校正:預設為開啟,可以停用
  • 自動大寫:一律停用
  • 文字預測:預設為開啟,可以停用

TelephoneNumber

<TextBox InputScope="TelephoneNumber"/>

Windows touch keyboard for telephone numbers

  • 拼字檢查:預設為開啟,可以停用
  • 自動校正:預設為開啟,可以停用
  • 自動大寫:一律停用
  • 文字預測:預設為開啟,可以停用

<TextBox InputScope="Search"/>

Windows touch keyboard for search

  • 包含 搜尋 索引鍵,而不是 Enter
  • 拼字檢查:預設為開啟,可以停用
  • 自動校正:預設為開啟,可以停用
  • 自動大寫:一律停用
  • 文字預測:預設為開啟,可以停用

SearchIncremental

<TextBox InputScope="SearchIncremental"/>

Windows touch keyboard for incremental search

  • 預設值相同的版面配置
  • 拼字檢查:預設為關閉,可以啟用
  • 自動校正:一律停用
  • 自動大寫:一律停用
  • 文字預測:一律停用

Formula

<TextBox InputScope="Formula"/>

Windows touch keyboard for formula

  • 包含金鑰 =
  • 也包含 %$+ 索引鍵
  • 拼字檢查:預設為開啟,可以停用
  • 自動校正:預設為開啟,可以停用
  • 自動大寫:一律停用
  • 文字預測:預設為開啟,可以停用

聊天

<TextBox InputScope="Chat"/>

Default Windows touch keyboard

  • 預設值相同的版面配置
  • 拼字檢查:預設為開啟,可以停用
  • 自動校正:預設為開啟,可以停用
  • 自動大寫:預設為開啟,可以停用
  • 文字預測:預設為開啟,可以停用

NameOrPhoneNumber

<TextBox InputScope="NameOrPhoneNumber"/>

Default Windows touch keyboard

  • 預設值相同的版面配置
  • 拼字檢查:預設為關閉,可以啟用
  • 自動校正:預設為關閉,可以啟用
  • 自動大寫:預設為關閉,可以啟用 (每個單字的第一個字母大寫)
  • 文字預測:預設為關閉,可以啟用