Udostępnij przez


Zmienianie klawiatury dotykowej za pomocą zakresu wejściowego

Aby ułatwić użytkownikom wprowadzanie danych przy użyciu klawiatury dotykowej lub Panelu wprowadzania nietrwałego (SIP), możesz ustawić zakres wejściowy kontrolki tekstu tak, aby był zgodny z rodzajem danych, które użytkownik powinien wprowadzić.

Ważne interfejsy API

Klawiatura dotykowa może służyć do wprowadzania tekstu, gdy aplikacja działa na urządzeniu z ekranem dotykowym. Klawiatura dotykowa jest wywoływana, gdy użytkownik naciągnie edytowalne pole wejściowe, takie jak TextBox lub RichEditBox. Możesz znacznie szybciej i łatwiej użytkownikom wprowadzać dane w aplikacji, ustawiając zakres wejściowy kontrolki tekstu w celu dopasowania ich do rodzaju danych, które mają być wprowadzane przez użytkownika. Zakres wejściowy zawiera wskazówkę dla systemu na temat typu wprowadzania tekstu oczekiwanego przez kontrolkę, dzięki czemu system może zapewnić wyspecjalizowany układ klawiatury dotykowej dla typu wejściowego.

Jeśli na przykład pole tekstowe jest używane tylko do wprowadzania 4-cyfrowego numeru PIN, ustaw właściwość InputScope na Number. Dzięki temu system wyświetli układ klawiatury liczbowej, co ułatwia użytkownikowi wprowadzenie numeru PIN.

Ważne

  • Te informacje dotyczą tylko SIP. Nie ma zastosowania do klawiatur sprzętowych ani klawiatury ekranowej dostępnej w opcjach Ułatwienia dostępu systemu Windows.
  • Zakres danych wejściowych nie powoduje przeprowadzenia walidacji danych wejściowych i nie uniemożliwia użytkownikowi podania żadnych danych wejściowych za pośrednictwem klawiatury sprzętowej lub innego urządzenia wejściowego. Nadal ponosisz odpowiedzialność za weryfikowanie danych wejściowych w kodzie zgodnie z potrzebami.

Zmienianie zakresu wejściowego kontrolki tekstu

Zakresy wejściowe dostępne dla aplikacji są elementami członkowskimi InputScopeNameValue wyliczenia. Możesz ustawić właściwość InputScopeTextBox lub RichEditBox na jedną z tych wartości.

Ważne

Właściwość InputScope w PasswordBox obsługuje tylko wartości "hasło" i "NumericPin". Każda inna wartość jest ignorowana.

W tym miejscu zmieniasz zakres wejściowy kilku pól tekstowych tak, aby odpowiadał oczekiwanym danym dla każdego pola tekstowego.

Aby zmienić zakres wejściowy w XAML

  1. W pliku XAML dla strony znajdź tag kontrolki tekstu, którą chcesz zmienić.

  2. Dodaj atrybut InputScope do tagu i określ InputScopeNameValue wartość zgodną z oczekiwanym wejściem.

    Poniżej przedstawiono niektóre pola tekstowe, które mogą pojawić się w typowym formularzu kontaktu z klientem. Po ustawieniu InputScope, klawiatura dotykowa z układem odpowiednim do wprowadzania danych pojawia się dla każdego pola tekstowego.

    <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>
    

Aby zmienić zakres wejściowy w kodu

  1. W pliku XAML dla strony znajdź tag kontrolki tekstu, którą chcesz zmienić. Jeśli nie jest ustawiona, ustaw atrybut x:Name , aby można było odwołać się do kontrolki w kodzie.

    <TextBox Header="Telephone Number" x:Name="phoneNumberTextBox"/>
    
  2. Zainicjuj nowy obiekt InputScope.

    InputScope scope = new InputScope();
    
  3. Utwórz wystąpienie nowego obiektu InputScopeName.

    InputScopeName scopeName = new InputScopeName();
    
  4. Ustaw właściwość NameValue obiektu InputScopeName na wartość wyliczenia InputScopeNameValue.

    scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
    
  5. Dodaj obiekt InputScopeName do kolekcji Names obiektu InputScope .

    scope.Names.Add(scopeName);
    
  6. Ustaw obiekt InputScope jako wartość właściwości InputScope kontrolki tekstu.

    phoneNumberTextBox.InputScope = scope;
    

Oto cały kod razem.

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

Te same kroki można skondensować do tego skróconego kodu.

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

Przewidywanie tekstu, sprawdzanie pisowni i automatyczna korekta

Kontrolki TextBox i RichEditBox mają kilka właściwości, które wpływają na zachowanie SIP. Aby zapewnić użytkownikom najlepsze środowisko pracy, ważne jest, aby zrozumieć, jak te właściwości wpływają na wprowadzanie tekstu przy użyciu dotyku.

  • IsSpellCheckEnabled — po włączeniu sprawdzania pisowni dla kontrolki tekstu kontrolka wchodzi w interakcję z aparatem sprawdzania pisowni systemu w celu oznaczania wyrazów, które nie są rozpoznawane. Możesz nacisnąć wyraz, aby wyświetlić listę sugerowanych poprawek. Sprawdzanie pisowni jest domyślnie włączone.

    W przypadku zakresu wejściowego domyślnego ta właściwość umożliwia także automatyczne kapitalizowanie pierwszego wyrazu w zdaniu i automatyczną korektę wyrazów podczas pisania. Te funkcje autokorekty mogą być wyłączone w innych zakresach danych wejściowych. Aby uzyskać więcej informacji, zobacz tabele w dalszej części tego tematu.

  • IsTextPredictionEnabled— po włączeniu przewidywania tekstu dla kontroli tekstu system wyświetla listę wyrazów, które możesz rozpoczynać wpisywać. Możesz wybrać z listy, aby nie trzeba wpisywać całego słowa. Przewidywanie tekstu jest domyślnie włączone.

    Przewidywanie tekstu może być wyłączone, jeśli zakres wejściowy jest inny niż Domyślny, nawet jeśli właściwość IsTextPredictionEnabled ma wartość true. Aby uzyskać więcej informacji, zobacz tabele w dalszej części tego tematu.

  • PreventKeyboardDisplayOnProgrammaticFocus— gdy ta właściwość jest true, uniemożliwia systemowi wyświetlanie SIP podczas programowego ustawiania fokusu na kontrolce tekstu. Zamiast tego klawiatura jest wyświetlana tylko wtedy, gdy użytkownik wchodzi w interakcję z kontrolką.

Indeks klawiatury dotykowej dla systemu Windows

Te tabele pokazują układy Panelu miękkiego wejścia systemu Windows (SIP) dla typowych wartości zakresu danych wejściowych. Wpływ zakresu wejściowego na funkcje aktywowane przez właściwości IsSpellCheckEnabled i IsTextPredictionEnabled został wymieniony dla każdego zakresu wejściowego. Nie jest to pełna lista dostępnych zakresów wejściowych.

Wskazówka

Większość klawiatur dotykowych można przełączać między układem alfabetycznym a układem cyfr i symboli, naciskając &123 , aby zmienić układ liczb i symboli, a następnie nacisnąć abcd , aby zmienić układ alfabetyczny.

Default

<TextBox InputScope="Default"/>

Domyślna klawiatura dotykowa systemu Windows.

domyślna klawiatura dotykowa systemu Windows

  • Sprawdzanie pisowni: włączone, jeśli IsSpellCheckEnabled = prawda, wyłączone, jeśli IsSpellCheckEnabled = fałsz
  • Automatyczna korekta: włączona, jeśli IsSpellCheckEnabled = true, wyłączone, jeśli IsSpellCheckEnabled = false
  • Automatyczna kapitalizacja: włączona, jeśli IsSpellCheckEnabled = true, wyłączona, jeśli IsSpellCheckEnabled = false
  • Przewidywanie tekstu: włączone, jeśli IsTextPredictionEnabled = true, wyłączone, jeśli IsTextPredictionEnabled = false

KwotaWalutyIZnak

<TextBox InputScope="CurrencyAmountAndSymbol"/>

Domyślny układ klawiatury dla liczb i symboli.

klawiatura dotykowa systemu Windows do waluty

  • Zawiera klawisze strony w lewo/prawo do wyświetlania większej liczby symboli
  • Sprawdzanie pisowni: domyślnie można wyłączyć
  • Automatyczna korekta: domyślnie można wyłączyć
  • Automatyczne tworzenie wielkich liter: zawsze wyłączone
  • Przewidywanie tekstu: domyślnie można wyłączyć

URL

<TextBox InputScope="Url"/>

Klawiatura dotykowa systemu Windows dla adresów URL

  • Zawiera klucze .com oraz klucze go (Go). Naciśnij i przytrzymaj klawisz .com, aby wyświetlić dodatkowe opcje (.org, .net i sufiksy specyficzne dla regionu)
  • Obejmuje : klucze -, i /
  • Sprawdzanie pisowni: domyślnie wyłączone, można je włączyć
  • Automatyczna korekta: domyślnie wyłączona, można włączyć
  • Automatyczne pisanie wielkich liter: domyślnie wyłączone, można włączyć.
  • Przewidywanie tekstu: domyślnie wyłączone, można włączyć

Adres SMTP e-mail

<TextBox InputScope="EmailSmtpAddress"/>

Klawiatura dotykowa systemu Windows do adresów e-mail

  • Zawiera klucze @ i .com. Naciśnij i przytrzymaj klawisz .com, aby wyświetlić dodatkowe opcje (.org, .net i sufiksy specyficzne dla regionu)
  • Zawiera klucze _ i -
  • Sprawdzanie pisowni: domyślnie wyłączone, można je włączyć
  • Automatyczna korekta: domyślnie wyłączona, można włączyć
  • Automatyczne pisanie wielkich liter: domyślnie wyłączone, można włączyć.
  • Przewidywanie tekstu: domyślnie wyłączone, można włączyć

Number

<TextBox InputScope="Number"/>

klawiatura dotykowa systemu Windows do wprowadzania liczb

  • Sprawdzanie pisowni: domyślnie można wyłączyć
  • Automatyczna korekta: domyślnie można wyłączyć
  • Automatyczne tworzenie wielkich liter: zawsze wyłączone
  • Przewidywanie tekstu: domyślnie można wyłączyć

Numer telefonu

<TextBox InputScope="TelephoneNumber"/>

klawiatura dotykowa systemu Windows dla numerów telefonów

  • Sprawdzanie pisowni: domyślnie można wyłączyć
  • Automatyczna korekta: domyślnie można wyłączyć
  • Automatyczne tworzenie wielkich liter: zawsze wyłączone
  • Przewidywanie tekstu: domyślnie można wyłączyć

<TextBox InputScope="Search"/>

Klawiatura dotykowa systemu Windows do wyszukiwania

  • Zawiera klawisz wyszukiwania zamiast klawisza Enter
  • Sprawdzanie pisowni: domyślnie można wyłączyć
  • Automatyczna korekta: domyślnie można wyłączyć
  • Automatyczne tworzenie wielkich liter: zawsze wyłączone
  • Przewidywanie tekstu: domyślnie można wyłączyć

SearchIncremental

<TextBox InputScope="SearchIncremental"/>

Klawiatura dotykowa systemu Windows do wyszukiwania przyrostowego

  • Taki sam układ jak domyślny
  • Sprawdzanie pisowni: domyślnie wyłączone, można je włączyć
  • Automatyczna korekta: zawsze wyłączono
  • Automatyczne tworzenie wielkich liter: zawsze wyłączone
  • Przewidywanie tekstu: zawsze wyłączone

Formula

<TextBox InputScope="Formula"/>

klawiatura dotykowa systemu Windows dla formuły

  • Zawiera klucz =
  • Obejmuje również klucze %, $, i +
  • Sprawdzanie pisowni: domyślnie można wyłączyć
  • Automatyczna korekta: domyślnie można wyłączyć
  • Automatyczne tworzenie wielkich liter: zawsze wyłączone
  • Przewidywanie tekstu: domyślnie można wyłączyć

Chat

<TextBox InputScope="Chat"/>

domyślna klawiatura dotykowa systemu Windows

  • Taki sam układ jak domyślny
  • Sprawdzanie pisowni: domyślnie można wyłączyć
  • Automatyczna korekta: domyślnie można wyłączyć
  • Automatyczne tworzenie wielkich liter: domyślnie można wyłączyć
  • Przewidywanie tekstu: domyślnie można wyłączyć

ImięLubNumerTelefonu

<TextBox InputScope="NameOrPhoneNumber"/>

domyślna klawiatura dotykowa systemu Windows

  • Taki sam układ jak domyślny
  • Sprawdzanie pisowni: domyślnie wyłączone, można je włączyć
  • Automatyczna korekta: domyślnie wyłączona, można włączyć
  • Automatyczne tworzenie wielkich liter: domyślnie wyłączone, można włączyć (pierwsza litera każdego wyrazu jest pisana wielką literą)
  • Przewidywanie tekstu: domyślnie wyłączone, można włączyć