Mengatur Konteks untuk Kontrol Ink-Enabled

Semua pengenalan untuk kontrol yang mendukung tinta terjadi melalui objek RecognizerContext. API Teknologi PC Tablet memungkinkan Anda mengatur propertiFactoid pada objek RecognizerContext.

Jika Anda membuat aplikasi berkemampuan tinta, gunakan properti RecognizerContext objek Factoid dan WordList untuk mengatur konteks.

Anda dapat meneruskan nilai string nama dalam cakupan input yang ditentukan dalam enumerasiInputScopeke propertiFactoid, dibatasi dengan pembukaan (! dan penutup ). Misalnya, untuk mengatur konteks objekRecognizerContext ke bias terhadap karakter yang digunakan dalam URL, gunakan sintaks yang ditunjukkan dalam contoh C#berikut:

theRecoContext.Factoid = "(!IS_URL)";

Nota

Cakupan input seperti yang didefinisikan dalam enumerasi InputScope menggantikan factoid yang tersedia dalam versi SDK Windows XP Tablet PC Edition sebelumnya, meskipun factoid ini akan terus berfungsi untuk memberikan kompatibilitas mundur.

 

Contoh C# berikut menetapkan propertiFactoid untuk kode pos:

theRecognizerContext.Factoid = "(!IS_ADDRESS_POSTALCODE)";

Anda dapat menggabungkan cakupan input dengan menggunakan sintaks ekspresi reguler tulisan tangan. Untuk informasi lebih lanjut tentang penggunaan sintaks ekspresi reguler, lihat Cakupan Input Kustom dengan Ekspresi Reguler.

Anda dapat mengatur bendera pengenalan pada objek RecognizerContext untuk memengaruhi perilaku pengenal. Salah satu pengait tersebut adalah pengait Coerce dalam enumerasi InkRecognitionModes dari RecognizerContext. Penanda Coerce memaksa pengidentifikasi untuk mengembalikan hasil yang sesuai dengan definisi factoid yang sudah ditetapkan. Misalnya, jika Anda memiliki formulir yang mengharuskan pengguna memasukkan jumlah numerik, mungkin berguna untuk mengatur IS_NUMBER factoid dan juga mengatur propertiRecognitionFlags ke Coerce. Dalam hal ini, indikator Coerce menjamin bahwa recognizer hanya mengembalikan angka.

Contoh C# berikut menetapkan RecognitionFlags properti ke Coerce:

theRecognizerContext.RecognitionFlags = RecognitionModes.Coerce;

Namun, berhati-hatilah saat memutuskan untuk mengatur tanda Coerce. Bendera memaksa pengenal untuk mencocokkan hanya definisi factoid. Misalnya, jika Anda mengatur cakupan input IS_TELEPHONE_FULLTELEPHONENUMBER dan penanda Coerce, pengenal mengembalikan hasil yang sama persis dengan definisi cakupan input IS_TELEPHONE_FULLTELEPHONENUMBER saja. Jika pengguna menulis "911" dengan cakupan input IS_TELEPHONE_FULLTELEPHONENUMBER dan konfigurasi bendera Coerce, pengenal dapat mengembalikan teks kosong atau teks acak dalam format (XXX) XXX-XXXX (di mana X adalah digit). Format XXX tidak cocok dengan definisi IS_TELEPHONE_FULLTELEPHONENUMBER factoid, meskipun itu adalah nomor telepon yang valid.

Untuk daftar format yang didukung untuk setiap cakupan input, lihat referensi InputScope.

Untuk mengembalikan bidang ke pengaturan default untuk pengenal, atur factoid ke IS_DEFAULT , seperti dalam contoh C# berikut:

theRecgonizerContext.Factoid = "(!IS_DEFAULT)";

Untuk aplikasi yang menggunakan kontrol InkEdit, atur jenis factoid untuk kontrol dengan menentukan:

InkEdit1.Factoid = "(!IS_INPUTSCOPE)"

Di mana IS_INPUTSCOPE adalah nama cakupan input yang ingin Anda terapkan.

Kontrol InkEdit tidak mengekspos objek RecognizerContext. Anda masih dapat menetapkan konteks dengan menggunakan propertiFactoid dari kontrol InkEdit, tetapi Anda tidak dapat mengatur bendera WORDMODE.