9

UserControl私はその子供ではなく、それ自体に焦点を合わせる必要があります。
そうしないと、バッファからの挿入を実装できません。:(
設定Focusable=Trueは役に立ちません。GoogleとSOは、UserControlの子にフォーカスを設定する方法のみを指示します。

私のコントロールには次のものが含まれています。-
対応するVMのコマンドにバインドされたいくつかのボタンを備えたツールバー
-フィルターの入力であるTextBox
-DataGrid-アイテムのリスト。

Ctrl+VコマンドをVMにバインドする必要があります。ただし、このジェスチャを処理するには、UserControl内部に焦点を合わせる必要があります。グリッドにアイテムがない場合(VMのコレクションが空の場合)、ボタンは無効になり、フォーカスを取得できる要素は。だけですTextBox。ただし、Ctrl + Vは独自の方法で処理されるため、この動作を変更したくありません。
したがって、UserControlの領域をクリックしたときにフォーカスを設定するものが必要です。
UserControlが最適な候補だと思います。
しかし、それを選択可能にする方法がわかりません。

4

1 に答える 1

24

全体の問題は、コントロールの動作についての私の誤解にありました。
このSOの質問は、私が信じていることを明確に示しています。

したがって、設定UserControl.Focusable = trueだけでは不十分です。キーボードでナビゲートできるようにするためにもIsTabStop必要trueです。また、マウスクリックでUCを選択できるようにするにはFocus()、マウスイベントハンドラーを呼び出す必要があります。それでおしまい。

于 2013-03-26T08:01:04.003 に答える