2017-12-29 54 views
0

デフォルトでは、現在のフォーカスからフォーカスを外すために、別のコンポーネント(ボタンまたはテキストボックス)にフォーカスする必要があります。 私はちょうど外をクリックしたいと思います。 例えば、テキストボックスをクリックして何かを書く場合、TextBoxの外側をクリックするよりも、コンポーネントの焦点が合っていないため入力できません。外側のコンポーネントをクリックしてフォーカスを外す

(私は私の説明が明確であると思い、そうでない場合は、コメントでそう言ってください)

+0

だから、どこに問題がありますか? – Andy

答えて

0

あなたはWindowPreviewMouseDownイベントに取り付けることにより、この機能を実現することができます。また、するにはフォーカスを失うフォーカスを移動する別のフォーカス可能なコントロール(たとえば、_dummyControlという名前のテキストボックス)が必要です。

public MainWindow() 
{ 
    this.PreviewMouseDown += PreviewMouseDownEventHandler; 
} 
private void PreviewMouseDownEventHandler(object sender, MouseButtonEventArgs e) 
{ 
    //check conditions here... 
    _dummyControl.Focus(); 
} 

詳細:

PreviewMouseDownイベントMouseDownまたはクリックイベントが発生する直前に発生します。このイベントにアタッチすることで、ユーザーがウィンドウをクリックしたときにコードでそのことを知ることができ、その時点でフォーカスを非表示のコントロールに移動してフォーカスのない機能をシミュレートする必要があります。

+0

あなたはこの解決策をもっと詳しく説明できますか?私はイベントハンドラについて多くのことを知らないので、実際には組み込みのソリューションを期待していました。 –

+0

あなたは何を意味するのか分かりません。私はあなたにそのための実際のコードを与えました。とにかく、私はさらに情報を追加しました – Bijan

関連する問題