1

Silverlight 4.0を使用していますが、ComboBoxコントロールに問題があります。マウスをクリックせずに表示および非表示にするポップアップメニューを実装したいと思います。その領域にカーソルを置くと表示されるはずです-このprtはうまく機能します。その後、マウスポインタがその領域の外側にしばらく置かれると、非表示になります。MouseEnterイベントとMouseLeaveイベントを使用して実装しました。私の問題はComboBoxです-私の意見では、このコントロールは奇妙に動作します。通常、カーソルをその上に置くとMouseEnterイベントが発生し、マウスカーソルを他の場所に置くとMouseLeaveが発生すると予想されます。実際の状況は異なります。コンボボックスをクリックすると、オプションのリストが開いて表示され、すぐにLostFocusイベントとMouseLeaveイベントが送信されます。したがって、コントロールがキーボードフォーカスを失い、マウスポインターがその領域から移動したように見えますが、実際には、オプトインのコンボボックスリストが開いていてアクティブであり、キーボードフォーカスがあります。

だから問題は、コンボボックスで何が起こっているのかをプログラムでどうやって知ることができるかということです。ポップアップメニューを正しく非表示にするには、コンボボックスのオプションのリストがいつ開いているか閉じているかを知る必要があります。このドキュメントまたは他のドキュメントのイベントが表示されません。(望ましい動作は次のとおりです。コンボボックスが閉じている場合、マウスカーソルの位置に基づいてポップアップメニューを非表示にします。コンボボックスが開いている場合、ユーザーがコンボボックス内の何かを選択するか、コンボボックスを閉じるまで、ポップアップメニューを非表示にしません。 )。

また、見た目も動作も同じで、必要なイベントが発生するサードパーティのコンボボックスの交換で良い経験をしたことがある場合は、お知らせください。

4

1 に答える 1

1

MSDNには、ComboBox用にリストされている2つのイベントがあります。

http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox_events(v=VS.95).aspx

DropDownClosedコンボボックスのドロップダウン部分が閉じたときに発生します。
DropDownOpenedコンボボックスのドロップダウン部分が開いたときに発生します。

于 2011-06-13T21:23:55.853 に答える