轉(zhuǎn)帖|其它|編輯:郝浩|2011-04-06 13:56:39.000|閱讀 998 次
概述:有一些信息的錄入,比如電話號(hào)碼,郵編等等的這些信息都只是需要輸入數(shù)字,而Windows Phone 7里面的控件并沒(méi)有只讓輸入數(shù)字的一個(gè)控件,那么要實(shí)現(xiàn)這樣的一個(gè)控件就只能夠手工地去擴(kuò)展TextBox控件了。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
有一些信息的錄入,比如電話號(hào)碼,郵編等等的這些信息都只是需要輸入數(shù)字,而Windows Phone 7里面的控件并沒(méi)有只讓輸入數(shù)字的一個(gè)控件,那么要實(shí)現(xiàn)這樣的一個(gè)控件就只能夠手工地去擴(kuò)展TextBox控件了。
擴(kuò)展一個(gè)控件的步驟:
1、定義一個(gè)類,這個(gè)類需要繼承你要擴(kuò)展的控件的類
如
public class NumericTextBox : TextBox
2、在頁(yè)面上添加擴(kuò)展的控件的類的空間引用
如
xmlns:my="clr-namespace:WPNumericTextBox.Controls"
3、調(diào)用控件
下面是數(shù)字輸入文本框控件的例子:
控件類NumericTextBox.cs
using System;
using System.Windows.Controls;
using System.Windows.Input;
namespace WPNumericTextBox.Controls
{
public class NumericTextBox : TextBox
{
//返回鍵和數(shù)字鍵
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()
{
//將文本設(shè)置為 電話號(hào)碼的文本輸入模式
this.InputScope = new InputScope();
this.InputScope.Names.Add(new InputScopeName() {
NameValue = InputScopeNameValue.TelephoneNumber });
}
protected override void OnKeyDown(KeyEventArgs e)
{ //如果是數(shù)字鍵或者返回鍵則設(shè)置e.Handled = true; 表示事件已經(jīng)處理
if(Array.IndexOf(numeric,e.Key) == -1)
{
e.Handled = true;
}
base.OnKeyDown(e); // important, if not called the back button is not handled
}
}
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:博客園