2009-05-26 13 views
1

WPF ComboBoxをクリックしてフォーカスを合わせると、その後に発生する唯一のやりとりがComboBoxになります。ウィンドウ関数(minimizerestorecloseresize)およびウィンドウ内のコントロールを含む他のものが相互作用する場合、アクションは無視され、ComboBoxはフォーカスを失います。ComboBoxがフォーカスされているときのWPFマウスの動作

また

MouseEnter、ウィンドウボタンのMouseLeaveはまだアクティブですが、ウィンドウの境界上のMouseEnterが(?)が発生した場合、マウスポインタがサイズ変更ポインタに変わりません。この動作は、ComboBoxのポップアップコントロールの使用のために意味があります。ポップアップコントロールはメインのビジュアルツリーとは独立して存在し、ウィンドウが移動したりサイズが変更されたりすると、ポップアップはメインウィンドウの上に固定されたままになります。

私はを使ってみましたが、ComboBoxが何をしているのか見るためには、私が探しているものは見つかりませんでした。基本的に、私はこの動作がウィンドウ、コンボボックスから来ているのか、それともポップアップと何か関係があるのか​​どうかはわかりません。どうすればこの問題を解決できますか?

答えて

1

ここにあなたの説明があります。ポップアップは、フォーカスが失われるまで、すべてのアクションフォーカスを保持します。 ComboBoxの機能を変更しようとしている場合は、異なる動作をし、ポップアップコントロールのデフォルト動作を維持しないcreating your own ControlTemplateを見るとよいでしょう。

希望するものは、あなたがやろうとしていることを完全には理解できません。

+0

コンボボックスの機能を変更しようとしていません。コンボボックスコントロールテンプレートのような構造の全く異なるコントロールを作成しようとしていますが、トグルボタンは表示されません。 ComboBoxを見ると、ポップアップが開いている間にマウスイベントが通過しているように見えます。それは、サイズ変更ポインタが通常表示されるウィンドウ境界をホバリングすることさえ無視します。私は、ウィンドウが変化しているときにポップアップが開いたままにならないように、これを行うことを知っています。私はちょうど同様の動作を達成する方法を理解しようとしています。 – BrandonS

+0

その場合、私はおそらくComboBoxのドロップダウンアイデアを取り除き、トグル時にコンテンツを表示するコントロールを作成するだけです。次に、マウスフォーカスが失われたときにコンテンツパネルを閉じるように設定できます。 ComboBox自体の機能を複製する必要がありますが、おそらくそれを行うことで必要な動作のみを達成することができます。 –