Windows 8.1应用程序上的数字选择器
本文关键字:数字 选择器 程序上 应用程序 应用 Windows | 更新日期: 2023-09-27 18:25:13
我似乎无法拥有一个简单的十进制框。
或者,通过类似日期选择器的视觉滚轮。
或者一个只允许输入数字的文本框。
我已连接了上下按键。这些不会停止输入。
private void TProperty_KeyUp(object sender, KeyRoutedEventArgs e)
{
e.Handled = false;
//e.Handled = IsNumber(((TextBox)sender).Text);
}
我也阅读并尝试连接PreviewText
,但这在Windows 8.1应用程序中不存在。(不知道为什么)。
我在文件中也找不到任何官方控制。
有人知道怎么做吗?
框中没有任何此类控件,但工具包中有第三方旋转控件,如WinRTXamlToolkit的NumericUpDown控件。
如果你想自己过滤一个文本框,那么你也可以这样做。没有办法对在TextBox中输入的文本进行预处理。在TextBox上设置后,您需要对其进行验证。
验证文本的最佳事件取决于场景。我可能会在TextChanged中进行验证,并设置一个属性来报告TextBox的内容是否无效。此属性可以向用户发出数据无效的警告,并允许在文本有效之前禁用任何提交代码。
对于简单的正整数,您可以在TextChanged中检查任何非数字数据,删除无效字符,然后重新设置,从而过滤掉这些数据。对于更复杂的数据,您必须更加小心,因为用户在输入有效数据(如"-1")的过程中经常会输入无效数据(例如"-")。您需要确保不会拒绝可能变为有效的临时无效文本。
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = sender as TextBox;
string text = tb.Text;
try
{
Decimal dec = Decimal.Parse(text);
TextValid = true;
}
catch (System.FormatException ex)
{
Debug.WriteLine("Exception converting {1} to Decimal {0}", ex,text);
TextValid = false;
}
}