0

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

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

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

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

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

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" >
4

1 回答 1

0

尝试以下操作:

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]" />

因此,每当它获得焦点时,它所做的第一件事就是选择准备编辑的所有内容。

于 2016-01-20T11:40:32.480 回答