Criar TextBox WPF que aceita apenas números [duplicados]
Esta questão já tem uma resposta aqui:
Como obtenho um TextBox para aceitar apenas entrada numérica no WPF? 28 respostasEu gostaria de criar um TextBox que aceita apenas valores numéricos, em um intervalo específico. Qual é a melhor maneira de implementar esse TextBox?
Pensei em derivar o TextBox e sobrescrever a validação e a coerção do TextProperty. No entanto, não tenho certeza de como fazer isso e entendo que geralmente não é recomendável derivar o controle do WPF.
Editar:O que eu precisava era de uma caixa de texto muito básica que filtra todas as teclas que não são dígitos. A maneira mais fácil de conseguir isso é manipular o evento TextBox.PreviewTextInput:
private void textBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
int result;
if (!validateStringAsNumber(e.Text,out result,false))
{
e.Handled = true;
}
}
(validateStringAsNumber é a minha função que usa principalmente Int.TryParse)
Algumas das soluções sugeridas provavelmente são melhores, mas para a funcionalidade simples que eu precisava, essa solução é a mais fácil e rápida de implementar, embora seja suficiente para minhas necessidades.