Silverlight ボタンがクリックされたときに、MouseLeftButtonDown イベントと MouseLeftButtonUp イベントが発生しないことに気付きましたか? これは、ボタンが OnMouseLeftButtonDown および OnMouseLeftButtonUp ハンドラーをオーバーライドすることによって、これら 2 つのイベント自体を処理するためです。OnMouseLeftButtonDown オーバーライドでは、Click イベントが発生し、MouseLeftButtonDown イベントが処理済みとしてマークされるため、ビジュアル ツリーでバブリングできません。OnMouseLeftButtonUp オーバーライドも、MouseLeftButtonUp を処理済みとしてマークします。
これは、Button コントロールの ClickMode プロパティを使用して変更できます。次の値があります - Hover、Press、Release。デフォルトは Pressed で、すでに説明しました。ClickMode を Release に設定すると、OnMouseLeftButtonUp オーバーライドで Click イベントが発生し、MouseLeftButtonDown および MouseLeftButtonUp イベントがボタン内で再び処理されます。ClickMode を Hover に設定すると、Click イベントが MouseEnter イベントで発生し、マウス ボタン イベントも使用できるようになります。