有一些資訊的錄入,比如電話號碼,郵編等等的這些資訊都只是需要輸入數位,而Windows Phone 7裡面的控制項並沒有只讓輸入數位的一個控制項,那麼要實現這樣的一個控制項就只能夠手工地去擴展TextBox控制項了。

 

擴展一個控制項的步驟:

 

1、定義一個類,這個類需要繼承你要擴展的控制項的類

 

public class NumericTextBox : TextBox
複製代碼
2、在頁面上添加擴展的控制項的類的空間引用

 

xmlns:my="clr-namespace:WPNumericTextBox.Controls"
複製代碼
3、調用控制項

 

控制項類
NumericTextBox.cs

 

using System;
using System.Windows.Controls;
using System.Windows.Input;

 

namespace WPNumericTextBox.Controls
{
public class NumericTextBox : TextBox
{
//返回鍵和數位鍵
private readonly Key[] numeric = new Key[] {Key.Back, Key.NumPad0, Key.NumPad1,
Key.NumPad2, Key.NumPad3, Key.NumPad4,
Key.NumPad5, Key.NumPad6, Key.NumPad7,
Key.NumPad8, Key.NumPad9 };

 

public NumericTextBox()
{
//將文本設置為 電話號碼的文本輸入模式
this.InputScope = new InputScope();
this.InputScope.Names.Add(new InputScopeName() {
NameValue = InputScopeNameValue.TelephoneNumber });
}

 

protected override void OnKeyDown(KeyEventArgs e)
{ //如果是數位鍵或者返回鍵則設置e.Handled = true; 表示事件已經處理
if(Array.IndexOf(numeric,e.Key) == -1)
{
e.Handled = true;
}
base.OnKeyDown(e); // important, if not called the back button is not handled
}
}

 

}
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()