Home > Articles > Home & Office Computing > Entertainment/Gaming/Gadgets

  • Print
  • + Share This
This chapter is from the book

The On-Screen Keyboard

The on-screen keyboard is the primary mechanism for typing on a Windows phone. For many models, it is the only way. It is sometimes called the software input panel (SIP). When it appears, it covers the bottom 339 pixels of the screen in the portrait orientation or the bottom 259 pixels in the landscape orientations. (In landscape, its keys expand horizontally but shrink vertically.) It occupies an additional 62 pixels when text suggestions are given, or when copy/paste has been used.

There are no APIs for interacting with the on-screen keyboard. Instead, it automatically slides up when a text box or password box gets focus (normally from a user tapping on it) and it automatically slides down when the text box or password box loses focus (normally from a user tapping on something else or pressing the hardware Back button). There is no way to leverage the on-screen keyboard in your app without using a text box or password box.

The most interesting aspect of the on-screen keyboard, and what gives it a big advantage over a hardware keyboard, is its ability to change its display depending on the context. For example, it can show a ".com" button when it knows you need to type a URL, or a phone keypad when it knows you need to type a phone number.

The on-screen keyboard can currently appear in 11 different modes. You can choose which one to use by marking the relevant text box with an appropriate input scope. An input scope is basically a pre-defined label that can be assigned to a text box's InputScope property. Some examples are Default, Url, and PhoneNumber. It can be assigned in XAML as follows:

<TextBox InputScope="PhoneNumber"/>

The list of allowed input scopes is provided by the InputScopeNameValue enumeration. The confusing thing about input scopes, however, is that there are 62 valid values despite there being only 11 distinct keyboard modes!

So how do 62 values map into 11 modes? Some values are simply synonyms for the same concept, such as Numbers versus Digits. Some values express different intent, but there is no meaningful way for the keyboard to show distinct displays, such as PersonalGivenName versus PersonalMiddleName versus PersonalSurname. Some values would ideally produce different displays (and might in a future release) but are currently lumped together, such as CurrencyAmount versus CurrencyAmountAndSymbol. Many other values are simply not implemented and produce the default display instead, such as Password, CurrencyChinese, and Bopomofo. Table 3.1 lists all 62 values grouped into the 11 distinct modes and shows the resulting on-screen keyboard.

Table 3.1. The Valid Values for a Text Box's Input Scope and the Resulting Keyboard Display

Name

Description

Result

Default
AlphanumericFullWidth
AlphanumericHalfWidth
Bopomofo
CurrencyChinese
EnumString
FileName
FullFilePath
Hanja
Hiragana
KatakanaFullWidth
KatakanaHalfWidth
LogOnName
NumberFullWidth
OneChar
Password
PhraseList
RegularExpression
Srgs
Yomi

The default mode. It starts on a page with letter keys, and has a "&123"button to switch to a page with number and symbol keys.

03table01a.jpg

Number
Digits
AddressStreet
CurrencyAmount
CurrencyAmountAndSymbol
DateDay
DateMonth
DateYear
PostalAddress
PostalCode
Time
TimeHour
TimeMinorSec
TelephoneNumber
TelephoneAreaCode
TelephoneCountryCode
TelephoneLocalNumber

"Numeric mode." This is still the default keyboard, but it starts on the page with number and symbol keys. You can switch to the page of letter keys by pressing the "abcd" button.

03table01b.jpg

TelephoneNumber
TelephoneAreaCode
TelephoneCountryCode
TelephoneLocalNumber

Used for entering a phone number. Shows a keypad that looks similar to the Phone app's keypad. Adds an extra column of keys for backspace, space, comma, and period. The latter two are there in case you want to use this mode as a better "numeric mode."

03table01c.jpg

Url

Used for entering a URL. Shows a ".com" button instead of a comma and restyles the Enter key.(The comma still appears on the numbers and symbols page.) I wish the enter key always looked like this, because I sometimes confuse the default one with the backspace key!

03table01d.jpg

EmailNameOrAddress
EmailSmtpAddress
EmailUserName

Used for entering an email address. Shows a ".com" button and duplicates the @ key from the numbers and symbols page for quick access. Unlike for Url, the @ and ".com" buttons are present on both pages of keys.

03table01e.jpg

NameOrPhoneNumber

"SMS mode," for entering a recipient of an SMS message. Like the default mode, but the comma key is replaced with an @ key and a semicolon key. (The semicolon is useful for delimiting consecutive names/numbers.) Note that there is a "123" button instead of the usual "&123" button. This brings up a phone-style numeric keypad that only has numbers and a backspace key.

03table01fg.jpg

AddressCity
AddressCountryName
AddressCountryShortName
AddressStateOrProvince
Date
DateDayName
DateMonthName
PersonalFullName
PersonalGivenName
PersonalMiddleName
PersonalNamePrefix
PersonalNameSuffix
PersonalSurname
Text
Chat

"Capitalized mode." Like the default mode, but with shift depressed to make the first letter capital. The keyboard returns to lowercase after the first letter is typed.

03table01h.jpg

Text
Chat

Like the default mode, but with a bar of text suggestions and an emoticons button that gives access to two pages of common emoticons. (The first page of emoticons is pictured to the right.) It also starts out with shift depressed so the first letter is capitalized. Although one could imagine that Chat mode would use a dictionary with slang and abbreviations (LOL, ROFL, brb,...) whereas Text mode could use a "proper" dictionary, these two modes are actually identical and use the same dictionary. As shown in the picture, this dictionary indeed includes several slang terms and abbreviations that would make your English teacher weep.

03table01jk.jpg

Maps
ApplicationEnd

Matches the keyboard used by the Maps app (and Bing app). Adds the text suggestions bar to the default mode, but with the restyled Enter key and no emoticons button. Again, although you can imagine a customized dictionary that only includes terms relevant for a map, this mode uses the same dictionary as every mode with the text suggestions bar.

03table01l.jpg

Search

Like the default mode, but with a restyled enter key. Oddly, this is not the keyboard used by the Bing app because there are no text suggestions. Instead, the Maps value matches what Bing uses.

03table01m.jpg

Private

This mode should not be used. It is exactly like the default mode, but with a text suggestions bar that is always empty.

03table01n.jpg

  • + Share This
  • 🔖 Save To Your Account