TextBoxかなり小さなリストから文字列を取り出して単語を「補完」するクイックオートコンプリート機能を実装しました。キャレットはTextBox最後にキーを押した場所に留まり、ユーザーがまだ入力していない単語の部分が強調表示されるため、別の何かを入力し始めると、入力のこのセクションが削除されます。
こだわりは、完了して部分的に強調表示すると、スペースバーが「受け入れ」キーとして機能するようにする必要があることです。たとえば、キャレットを完了した単語の最後に移動します。ただし、スペースを押すと、単語の強調表示された部分が削除されます(他のキーを押すのと同じように、スペース文字に置き換えられます)。
私はこれを試しました:
private void textBoxIncidentLogTypes_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Space)
    {
        textBoxIncidentLogTypes.CaretIndex = textBoxIncidentLogTypes.Text.Length;
    }
}
しかし、これが「機能」している間は、スペース キーがフレーズの最良の部分を破壊した後に起動されます。に入力される前にキープレスをキャプチャする方法はありますTextBoxか?