共用方式為


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

若要協助使用者使用觸控式鍵盤或軟體輸入面板 (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 觸控式鍵盤。

默認 Windows 觸控式鍵盤

  • 拼字檢查:如果 IsSpellCheckEnabled = true則啟用;如果 IsSpellCheckEnabled = false,則停用拼字檢查。
  • IsSpellCheckEnabled = 為 true時,自動更正會啟用;當 IsSpellCheckEnabled = 為 false 時,自動更正會停用。
  • 自動大寫:啟用條件為 IsSpellCheckEnabled = true;否則停用條件為 IsSpellCheckEnabled = false
  • 文字預測:如果 IsTextPredictionEnabled = true,則為啟用;如果 IsTextPredictionEnabled = false,則為停用。

貨幣金額及符號

<TextBox InputScope="CurrencyAmountAndSymbol"/>

預設數位和符號鍵盤配置。

適用於貨幣的 Windows 觸控式鍵盤

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

網址

<TextBox InputScope="Url"/>

適用於 URL 的 Windows 觸控式鍵盤

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

電子郵件SMTP地址

<TextBox InputScope="EmailSmtpAddress"/>

專用於電子郵件地址的 Windows 觸控式鍵盤

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

Number

<TextBox InputScope="Number"/>

Windows 數字用觸控鍵盤

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

電話號碼

<TextBox InputScope="TelephoneNumber"/>

適用於電話號碼的 Windows 觸控鍵盤

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

<TextBox InputScope="Search"/>

用於搜尋的 Windows 觸控式鍵盤

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

增量式搜索

<TextBox InputScope="SearchIncremental"/>

Windows 觸控式鍵盤進行增量搜尋

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

Formula

<TextBox InputScope="Formula"/>

適用於公式的 Windows 觸控式鍵盤

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

Chat

<TextBox InputScope="Chat"/>

默認 Windows 觸控式鍵盤

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

姓名或電話號碼

<TextBox InputScope="NameOrPhoneNumber"/>

默認 Windows 觸控式鍵盤

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