0

これを解決しようと何時間も試みた後、私はあきらめており、実際にこれに対する解決策があるかどうか疑問に思っています.

コードビハインド (xaml.cs) から 10 進数にフォーカスを設定する WPF ビューがあります。私の目的は、「0.00」が読み込まれるため、その中の値を選択することです。ユーザーが値を入力する前に値を削除する必要があるのはイライラします。ロードされたメソッドで次のコードを試しました:

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

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

また、SelectAllOnGotFocus を true に設定しようとしましたが、それでも機能しませんでした。おかしなことに、メソッドにデバッグ ポイントを入れるとテストが選択されるので、ユーザー コントロールの読み込みに関係しているのではないかと考えています。これを機能させる方法の指針はありますか?

xaml の 10 進数のアップダウン:

<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 に答える