Как создать числовое текстовое поле в Silverlight? - PullRequest
12 голосов
/ 06 ноября 2008

Как видно из названия. Я взглянул на наследование от TextBox, но единственным разумным переопределением было «OnKeyDown», но это просто дает мне ключ из перечисления Key (без использования Char.IsNumeric ()).

Ответы [ 11 ]

0 голосов
/ 01 сентября 2011

Расширение обычного элемента управления Silverlight Textbox. Добавьте этот код в расширенный класс TextBox:

string nums = "1234567890";
string lastText = "";
int lastSelStart = 0;

protected override void TextChanged(object sender, TextChangedEventArgs e)
{
    if(!nums.Contains(this.Text.Substring(this.Text.Length -1)))
    {
         this.Text = lastText;
         this.SelectionStart = lastSelStart;
         return;
    }

    lastText = this.Text;
    lastSelStart = this.SelectionStart;

}
...