Windows Phone 7 設定文字方塊輸入鍵盤

  • 14064
  • 0

Windows Phone 7 設定文字方塊輸入鍵盤

在傳統WM6.5設計應用程式可使用Inputpanel元件來開啟輸入法,WP7就沒有這個元件可使用了需在文字方塊屬性InputScope設定輸入內容,那提供那些內容呢如下所示或參考http://msdn.microsoft.com/zh-tw/library/system.windows.input.inputscopenamevalue(VS.90).aspx

AddressCity 城市地址的文字輸入模式。
AddressCountryName 國家/地區名稱的文字輸入模式。
AddressCountryShortName 國家/地區縮寫名稱的文字輸入模式。
AddressStateOrProvince 縣市或鄉鎮的文字輸入模式。
AddressStreet 街道地址的文字輸入模式。
AlphanumericFullWidth 全形英數字元的文字輸入模式。
AlphanumericHalfWidth 半形英數字元的文字輸入模式。
ApplicationEnd 不支援。僅供 Silverlight for Windows Phone 內部使用。
Bopomofo 注音符號中文注音錄音系統的文字輸入模式。
Chat 文字訊息的 SIP 配置,可辨識預先定義的縮寫。僅在 Silverlight for Windows Phone 中支援。
CurrencyAmount 貨幣金額的文字輸入模式。
CurrencyAmountAndSymbol 貨幣符號和金額的文字輸入模式。
CurrencyChinese 中國貨幣的文字輸入模式。
Date 日曆日期的文字輸入模式。
DateDay 日曆日期中數字日期的文字輸入模式。
DateDayName 日曆日期中日期名稱的文字輸入模式。
DateMonth 日曆日期中數字月份的文字輸入模式。
DateMonthName 日曆日期中月份名稱的文字輸入模式。
DateYear 日曆日期中年份的文字輸入模式。
Default 輸入命令的預設處理。
Digits 數字的文字輸入模式。
EmailNameOrAddress 電子郵件名稱或地址的 SIP 配置。僅在 Silverlight for Windows Phone 中支援。
EmailSmtpAddress Simple Mail Transfer Protocol (SMTP) 電子郵件地址的文字輸入模式。
EmailUserName 電子郵件使用者名稱的文字輸入模式。
EnumString 不支援。僅供 Silverlight for Windows Phone 內部使用。
FileName 檔案名稱的文字輸入模式。
FullFilePath 檔案完整路徑的文字輸入模式。
Hanja 漢文字元的文字輸入模式。
Hiragana 平假名書寫系統的文字輸入模式。
KatakanaFullWidth 全形片假名字元的文字輸入模式。
KatakanaHalfWidth 半形片假名字元的文字輸入模式。
LogOnName 登入名稱的文字輸入模式。
Maps 輸入地圖位置的 SIP 配置。僅在 Silverlight for Windows Phone 中支援。
NameOrPhoneNumber SMS [收件者] 欄位的 SIP 配置。僅在 Silverlight for Windows Phone 中支援。
Number 號碼的文字輸入模式。
NumberFullWidth 全形片號碼的文字輸入模式。
OneChar 單一字元的文字輸入模式。
Password 密碼的文字輸入模式。
PersonalFullName 個人完整姓名的文字輸入模式。
PersonalGivenName 個人名字的文字輸入模式。
PersonalMiddleName 個人中間名的文字輸入模式。
PersonalNamePrefix 個人姓名前置詞的文字輸入模式。
PersonalNameSuffix 個人姓名後置詞的文字輸入模式。
PersonalSurname 個人姓氏的文字輸入模式。
PhraseList 片語清單的文字輸入模式。
PostalAddress 郵寄地址的文字輸入模式。
PostalCode 郵遞區號的文字輸入模式。
Private 不支援。僅供 Silverlight for Windows Phone 內部使用。
RegularExpression 規則運算式 (Regular Expression) 的文字輸入模式。
Search 搜尋查詢的 SIP 配置。僅在 Silverlight for Windows Phone 中支援。
Srgs Speech Recognition Grammar Specification (SRGS) 的文字輸入模式。
TelephoneAreaCode 電話區碼的文字輸入模式。
TelephoneCountryCode 電話國碼/區碼的文字輸入模式。
TelephoneLocalNumber 電話區域號碼的文字輸入模式。
TelephoneNumber 電話號碼的文字輸入模式。
Text 標準文字輸入的軟體輸入面板 (SIP) 配置。僅在 Silverlight for Windows Phone 中支援。
Time 時間的文字輸入模式。
TimeHour 小時時間的文字輸入模式。
TimeMinorSec 分鐘或秒時間的文字輸入模式。
Url 統一資源定位器 (URL) 的文字輸入模式。
Xml XML 的文字輸入模式。
Yomi 不支援。僅供 Silverlight for Windows Phone 內部使用。

那在程式中怎麼設定使用者輸入方式有二種:

1.在xaml檔的編輯把Name Value=你想要的輸入方式

<TextBox.InputScope>

                    <InputScope>

                        <InputScopeName NameValue="Text"></InputScopeName>

                    </InputScope>

                </TextBox.InputScope>

2.利用程式方式來控制

InputScope inputScope = new InputScope(); 
inputScope .Names .Add(new InputScopeName() { NameValue = (InputScopeNameValue)Enum.Parse(typeof(InputScopeNameValue), "Number", true) });
this.textBox1.InputScope = inputScope;

下面提供一個測試程式可以顯示目前Windows Phone 7所有的輸入方式

1.開啟vs2010新增一個WindowsPhoneApplication在Main

<ListBox x:Name="ListBox1">
              <ListBox.ItemTemplate>
                  <DataTemplate>
                      <Grid>
                          <Grid.ColumnDefinitions>
                              <ColumnDefinition Width="200" />
                              <ColumnDefinition Width="200" />
                          </Grid.ColumnDefinitions>
                          <TextBlock Text="{Binding}" VerticalAlignment="Center" />
                          <TextBox InputScope="{Binding}" Grid.Column="1" />
                      </Grid>
                  </DataTemplate>
              </ListBox.ItemTemplate>
          </ListBox>

 

2.PageLoaded事件加入下列程式碼,把InputScopeNameValue列舉型別塞到list集合,在集合內容交給ListBox物件

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
       {
           List<string> list = new List<string>();
           foreach (FieldInfo field in typeof(InputScopeNameValue).GetFields(BindingFlags.Static | BindingFlags.Public))
           {
               list.Add(field.Name);
           }
           ListBox1.ItemsSource = list;
       }

3.執行後的畫面如下所示:

image

型別為Text輸入ph會帶出相似字串供使用者點選減少輸入字串

image

型別為EmailNameOrAddress 在鍵盤上就會多了@及.com貼心設計方便使用者輸入

image

型別為TelephoneNumber輸入的界面就產生像手機上硬體鍵盤模式

image

程式碼下載