Windows Phone 7 擴充TextBox控制項為數字輸入文字框

來源:互聯網
上載者:User

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

擴充一個控制項的步驟:

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

public class NumericTextBox : TextBox

2、在頁面上添加擴充的控制項的類的空間引用

xmlns:my="clr-namespace:WPNumericTextBox.Controls" 

3、調用控制項

 <my:NumericTextBox x:Name="NumTbx"/>

下面是數字輸入文字框控制項的例子:

控制項類

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
}
}

}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.