Menggunakan cakupan input untuk mengubah keyboard sentuh

Untuk membantu pengguna memasukkan data menggunakan keyboard sentuh, atau Panel Input Lunak (SIP), Anda dapat mengatur cakupan input kontrol teks agar sesuai dengan jenis data yang diharapkan dimasukkan pengguna.

API penting

Keyboard sentuh dapat digunakan untuk entri teks saat aplikasi Anda berjalan di perangkat dengan layar sentuh. Keyboard sentuh dipanggil saat pengguna mengetuk bidang input yang dapat diedit, seperti TextBox atau RichEditBox. Anda dapat membuatnya jauh lebih cepat dan lebih mudah bagi pengguna untuk memasukkan data di aplikasi Anda dengan mengatur cakupan input kontrol teks agar sesuai dengan jenis data yang Anda harapkan untuk dimasukkan pengguna. Cakupan input memberikan petunjuk kepada sistem tentang jenis input teks yang diharapkan oleh kontrol sehingga sistem dapat menyediakan tata letak keyboard sentuh khusus untuk jenis input.

Misalnya, jika kotak teks hanya digunakan untuk memasukkan PIN 4 digit, atur properti InputScope ke Angka. Ini memberi tahu sistem untuk menampilkan tata letak keypad angka, yang memudahkan pengguna untuk memasukkan PIN.

Penting

  • Info ini hanya berlaku untuk SIP. Ini tidak berlaku untuk keyboard perangkat keras atau Keyboard Layar yang tersedia di opsi Kemudahan Akses Windows.
  • Cakupan input tidak menyebabkan validasi input dilakukan, dan tidak mencegah pengguna memberikan input apa pun melalui keyboard perangkat keras atau perangkat input lainnya. Anda masih bertanggung jawab untuk memvalidasi input dalam kode Anda sesuai kebutuhan.

Mengubah cakupan input kontrol teks

Cakupan input yang tersedia untuk aplikasi Anda adalah anggota enumerasi InputScopeNameValue. Anda dapat mengatur properti InputScope dari TextBox atau RichEditBox ke salah satu nilai ini.

Penting

Properti InputScope di PasswordBox hanya mendukung nilai Kata Sandi dan NumericPin. Nilai lain diabaikan.

Di sini, Anda mengubah cakupan input beberapa kotak teks agar sesuai dengan data yang diharapkan untuk setiap kotak teks.

Untuk mengubah cakupan input di XAML

  1. Di file XAML untuk halaman Anda, temukan tag untuk kontrol teks yang ingin Anda ubah.

  2. Tambahkan atribut InputScope ke tag dan tentukan nilai InputScopeNameValue yang cocok dengan input yang diharapkan.

    Berikut adalah beberapa kotak teks yang mungkin muncul di formulir kontak pelanggan umum. Dengan set InputScope, keyboard sentuh dengan tata letak yang sesuai untuk data ditampilkan untuk setiap kotak teks.

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

Untuk mengubah cakupan input dalam kode

  1. Di file XAML untuk halaman Anda, temukan tag untuk kontrol teks yang ingin Anda ubah. Jika tidak diatur, atur atribut x:Name sehingga Anda dapat mereferensikan kontrol dalam kode Anda.

    <TextBox Header="Telephone Number" x:Name="phoneNumberTextBox"/>
    
  2. Membuat instans objek InputScope baru.

    InputScope scope = new InputScope();
    
  3. Buat instans objek InputScopeName baru.

    InputScopeName scopeName = new InputScopeName();
    
  4. Atur properti NameValue dari objek InputScopeName ke nilai enumerasi InputScopeNameValue.

    scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
    
  5. Tambahkan objek InputScopeName ke kumpulan Nama objek InputScope.

    scope.Names.Add(scopeName);
    
  6. Atur objek InputScope sebagai nilai properti InputScope kontrol teks.

    phoneNumberTextBox.InputScope = scope;
    

Berikut adalah kode semua bersama-sama.

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

Langkah yang sama dapat dikondensasikan ke dalam kode singkat ini.

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

Prediksi teks, pemeriksaan ejaan, dan koreksi otomatis

Kontrol TextBox dan RichEditBox memiliki beberapa properti yang memengaruhi perilaku SIP. Untuk memberikan pengalaman terbaik bagi pengguna Anda, penting untuk memahami bagaimana properti ini memengaruhi input teks menggunakan sentuhan.

  • IsSpellCheckEnabled—Saat pemeriksaan ejaan diaktifkan untuk kontrol teks, kontrol berinteraksi dengan mesin pemeriksaan ejaan sistem untuk menandai kata-kata yang tidak dikenali. Anda dapat mengetuk kata untuk melihat daftar koreksi yang disarankan. Pemeriksaan ejaan diaktifkan secara default.

    Untuk cakupan input Default, properti ini juga memungkinkan kapitalisasi otomatis kata pertama dalam kalimat dan koreksi otomatis kata saat Anda mengetik. Fitur koreksi otomatis ini mungkin dinonaktifkan dalam cakupan input lainnya. Untuk informasi selengkapnya, lihat tabel nanti dalam topik ini.

  • IsTextPredictionEnabled—Saat prediksi teks diaktifkan untuk kontrol teks, sistem menampilkan daftar kata yang mungkin mulai Anda ketik. Anda dapat memilih dari daftar sehingga Anda tidak perlu mengetik seluruh kata. Prediksi teks diaktifkan secara default.

    Prediksi teks mungkin dinonaktifkan jika cakupan input selain Default, meskipun properti IsTextPredictionEnabled benar. Untuk informasi selengkapnya, lihat tabel nanti dalam topik ini.

  • PreventKeyboardDisplayOnProgrammaticFocus—Ketika properti ini benar, hal ini mencegah sistem menampilkan SIP saat fokus diatur secara terprogram pada kontrol teks. Sebaliknya, keyboard hanya ditampilkan ketika pengguna berinteraksi dengan kontrol.

Indeks keyboard sentuh untuk Windows

Tabel ini memperlihatkan tata letak Windows Soft Input Panel (SIP) untuk nilai cakupan input umum. Efek cakupan input pada fitur yang diaktifkan oleh properti IsSpellCheckEnabled dan IsTextPredictionEnabled tercantum untuk setiap cakupan input. Ini bukan daftar komprehensif cakupan input yang tersedia.

Tip

Anda dapat mengalihkan sebagian besar keyboard sentuh antara tata letak alfabet dan tata letak angka dan simbol dengan menekan tombol &123 untuk mengubah ke tata letak angka dan simbol, dan menekan tombol abcd untuk mengubah ke tata letak alfabet.

Default

<TextBox InputScope="Default"/>

Keyboard sentuh Windows default.

Default Windows touch keyboard

  • Pemeriksaan ejaan: diaktifkan jika IsSpellCheckEnabled = true, dinonaktifkan jika IsSpellCheckEnabled false =
  • Koreksi otomatis: diaktifkan jika IsSpellCheckEnabled = true, dinonaktifkan jika IsSpellCheckEnabled false =
  • Kapitalisasi otomatis: diaktifkan jika IsSpellCheckEnabled = true, dinonaktifkan jika IsSpellCheckEnabled false =
  • Prediksi teks: diaktifkan jika IsTextPredictionEnabled = true, dinonaktifkan jika IsTextPredictionEnabled = false

CurrencyAmountAndSymbol

<TextBox InputScope="CurrencyAmountAndSymbol"/>

Tata letak keyboard angka dan simbol default.

Windows touch keyboard for currency

  • Menyertakan kunci kiri/kanan halaman untuk menampilkan lebih banyak simbol
  • Pemeriksaan ejaan: aktif secara default, dapat dinonaktifkan
  • Koreksi otomatis: aktif secara default, dapat dinonaktifkan
  • Kapitalisasi otomatis: selalu dinonaktifkan
  • Prediksi teks: aktif secara default, dapat dinonaktifkan

URL

<TextBox InputScope="Url"/>

Windows touch keyboard for URLs

  • Menyertakan kunci .com dan go key (Go). Tekan dan tahan tombol .com untuk menampilkan opsi tambahan (.org, .net, dan akhiran khusus wilayah)
  • Termasuk :, -, dan / kunci
  • Pemeriksaan ejaan: nonaktif secara default, dapat diaktifkan
  • Koreksi otomatis: nonaktif secara default, dapat diaktifkan
  • Kapitalisasi otomatis: nonaktif secara default, dapat diaktifkan
  • Prediksi teks: nonaktif secara default, dapat diaktifkan

EmailSmtpAddress

<TextBox InputScope="EmailSmtpAddress"/>

Windows touch keyboard for email addresses

  • @ Menyertakan kunci dan .com. Tekan dan tahan tombol .com untuk menampilkan opsi tambahan (.org, .net, dan akhiran khusus wilayah)
  • Termasuk _ dan - kunci
  • Pemeriksaan ejaan: nonaktif secara default, dapat diaktifkan
  • Koreksi otomatis: nonaktif secara default, dapat diaktifkan
  • Kapitalisasi otomatis: nonaktif secara default, dapat diaktifkan
  • Prediksi teks: nonaktif secara default, dapat diaktifkan

Angka

<TextBox InputScope="Number"/>

Windows touch keyboard for numbers

  • Pemeriksaan ejaan: aktif secara default, dapat dinonaktifkan
  • Koreksi otomatis: aktif secara default, dapat dinonaktifkan
  • Kapitalisasi otomatis: selalu dinonaktifkan
  • Prediksi teks: aktif secara default, dapat dinonaktifkan

TelephoneNumber

<TextBox InputScope="TelephoneNumber"/>

Windows touch keyboard for telephone numbers

  • Pemeriksaan ejaan: aktif secara default, dapat dinonaktifkan
  • Koreksi otomatis: aktif secara default, dapat dinonaktifkan
  • Kapitalisasi otomatis: selalu dinonaktifkan
  • Prediksi teks: aktif secara default, dapat dinonaktifkan

<TextBox InputScope="Search"/>

Windows touch keyboard for search

  • Menyertakan kunci Pencarian alih-alih tombol Enter
  • Pemeriksaan ejaan: aktif secara default, dapat dinonaktifkan
  • Koreksi otomatis: aktif secara default, dapat dinonaktifkan
  • Kapitalisasi otomatis: selalu dinonaktifkan
  • Prediksi teks: aktif secara default, dapat dinonaktifkan

SearchIncremental

<TextBox InputScope="SearchIncremental"/>

Windows touch keyboard for incremental search

  • Tata letak yang sama dengan Default
  • Pemeriksaan ejaan: nonaktif secara default, dapat diaktifkan
  • Koreksi otomatis: selalu dinonaktifkan
  • Kapitalisasi otomatis: selalu dinonaktifkan
  • Prediksi teks: selalu dinonaktifkan

Rumus

<TextBox InputScope="Formula"/>

Windows touch keyboard for formula

  • Menyertakan kunci =
  • Juga termasuk %kunci , $, dan +
  • Pemeriksaan ejaan: aktif secara default, dapat dinonaktifkan
  • Koreksi otomatis: aktif secara default, dapat dinonaktifkan
  • Kapitalisasi otomatis: selalu dinonaktifkan
  • Prediksi teks: aktif secara default, dapat dinonaktifkan

Obrolan

<TextBox InputScope="Chat"/>

Default Windows touch keyboard

  • Tata letak yang sama dengan Default
  • Pemeriksaan ejaan: aktif secara default, dapat dinonaktifkan
  • Koreksi otomatis: aktif secara default, dapat dinonaktifkan
  • Kapitalisasi otomatis: aktif secara default, dapat dinonaktifkan
  • Prediksi teks: aktif secara default, dapat dinonaktifkan

NameOr Telepon Number

<TextBox InputScope="NameOrPhoneNumber"/>

Default Windows touch keyboard

  • Tata letak yang sama dengan Default
  • Pemeriksaan ejaan: nonaktif secara default, dapat diaktifkan
  • Koreksi otomatis: nonaktif secara default, dapat diaktifkan
  • Kapitalisasi otomatis: nonaktif secara default, dapat diaktifkan (huruf pertama dari setiap kata dikapitalisasi)
  • Prediksi teks: nonaktif secara default, dapat diaktifkan