デフォルトでは、現在のフォーカスからフォーカスを外すために、別のコンポーネント(ボタンまたはテキストボックス)にフォーカスする必要があります。 私はちょうど外をクリックしたいと思います。 例えば、テキストボックスをクリックして何かを書く場合、TextBoxの外側をクリックするよりも、コンポーネントの焦点が合っていないため入力できません。外側のコンポーネントをクリックしてフォーカスを外す
(私は私の説明が明確であると思い、そうでない場合は、コメントでそう言ってください)
デフォルトでは、現在のフォーカスからフォーカスを外すために、別のコンポーネント(ボタンまたはテキストボックス)にフォーカスする必要があります。 私はちょうど外をクリックしたいと思います。 例えば、テキストボックスをクリックして何かを書く場合、TextBoxの外側をクリックするよりも、コンポーネントの焦点が合っていないため入力できません。外側のコンポーネントをクリックしてフォーカスを外す
(私は私の説明が明確であると思い、そうでない場合は、コメントでそう言ってください)
あなたはWindow
のPreviewMouseDown
イベントに取り付けることにより、この機能を実現することができます。また、するにはフォーカスを失うフォーカスを移動する別のフォーカス可能なコントロール(たとえば、_dummyControl
という名前のテキストボックス)が必要です。
public MainWindow()
{
this.PreviewMouseDown += PreviewMouseDownEventHandler;
}
private void PreviewMouseDownEventHandler(object sender, MouseButtonEventArgs e)
{
//check conditions here...
_dummyControl.Focus();
}
詳細:
PreviewMouseDown
イベントMouseDown
またはクリックイベントが発生する直前に発生します。このイベントにアタッチすることで、ユーザーがウィンドウをクリックしたときにコードでそのことを知ることができ、その時点でフォーカスを非表示のコントロールに移動してフォーカスのない機能をシミュレートする必要があります。
あなたはこの解決策をもっと詳しく説明できますか?私はイベントハンドラについて多くのことを知らないので、実際には組み込みのソリューションを期待していました。 –
あなたは何を意味するのか分かりません。私はあなたにそのための実際のコードを与えました。とにかく、私はさらに情報を追加しました – Bijan
だから、どこに問題がありますか? – Andy