WPF Extended ToolKit - 在 DecimalUpDown 中选择值

WPF Extended ToolKit - Selecting value in DecimalUpDown

经过几个小时的尝试解决这个问题后,我放弃了,实际上我想知道是否有解决方案。

我有一个 WPF 视图,它将焦点设置在后面代码 (xaml.cs) 的小数点上。我的目标是 select 它里面的值,因为它加载了“0.00”,而且用户在输入他的值之前必须删除它是令人沮丧的。我在加载的方法中尝试了以下代码:

    private void Loaded_Window(object sender, EventArgs e)
    {
        txtAmount.AutoSelectBehavior = AutoSelectBehavior.OnFocus;

        txtAmount.Focus();
        Keyboard.Focus(txtAmount);
    }

我也试过将 SelectAllOnGotFocus 设置为 true,但还是不行。有趣的是,如果我在方法中放置一个调试点,这个 selects 测试所以我认为它与用户控件的加载有关。有没有人对如何使这项工作有任何指示?

xaml小数向上向下:

<xctk:DecimalUpDown x:Name="txtAmount" d:LayoutOverrides="Height" Minimum="0" Maximum="99999999.99" ShowButtonSpinner="False" UpdateValueOnEnterKey="True" Text="{Binding Amount, UpdateSourceTrigger=PropertyChanged}" AllowSpin="False" FormatString="N2" >

尝试以下操作:

private void [NAME OF YOUR EVENT GOES HERE] (object sender, KeyboardFocusChangedEventArgs e)
        {
            if (e.KeyboardDevice.IsKeyDown(Key.Tab))
            {
                SelectAll();
            }
        }

这里的"SelectAll"真的很重要,我相信你可以忽略if语句。

在 XAML 中,您必须像这样将 属性 "GotFocus" 添加到您的控件中:

<xctk:DecimalUpDown GotFocus="[NAME OF YOUR EVENT GOES HERE]" />

因此,每当它获得焦点时,它做的第一件事就是select一切准备好进行编辑。