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应用程序中不存在。(不知道为什么)。

我在文件中也找不到任何官方控制。

有人知道怎么做吗?

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