WPF Extended ToolKit - 在DecimalUpDown

时间:2016-01-20 09:57:47

标签: c# wpf xaml wpftoolkit wpf-extended-toolkit

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

我有一个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 decimalupdown:

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

1 个答案:

答案 0 :(得分: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]" />

因此,只要它获得焦点,它首先要做的就是选择一切准备好进行编辑。