uwp beforetextchanged 光标在文本前面移动

uwp beforetextchanged cursor moving in front of text

我在 UWP 中有一个文本框。我试图只强制执行其中的数字。在 beforetextchanged 事件中执行此操作有效 ...

args.Cancel = args.NewText.Any(c => !char.IsDigit(c));

但是,我遇到的问题是,如果您在文本框为空时输入非数字,然后输入“1”,然后是“2”,然后是“3”,文本框会显示“231” ”。光标位于输入的第一个数字的前面。我怎样才能阻止它这样做?

您可以添加 TextChanged 事件处理程序,如下所示:

private void TestBox_TextChanged(object sender, TextChangedEventArgs e)
{
    if (TestBox.Text.Length == 1)
    {
        TestBox.SelectionStart = TestBox.Text.Length;
        TestBox.SelectionLength = 0;
    }
}

此致。