1

マウスの左ボタンを 1 つ(つまり a ) に押し下げてから、マウスを別のボタンに移動してマウスの左ボタンを離すとMouseLeftButtonUp、発火しないという問題があります。UIElementRectangleRectangle

このページhttp://msdn.microsoft.com/en-us/library/system.windows.uielement.mouseleftbuttonup.aspxによると、マウスの左ボタンが押されたのと同じ要素でのみイベントが発生するためです。 、

マウス ポインターがこの要素上にあるときにマウスの左ボタンが離されると発生します。

この問題はどのように解決できますか?

MouseLeftButtonUp イベントを処理するために両方の Rectangles の下に Grid 要素を追加しようとしましたが、問題は解決していないようです。Rect から Rect に移動すると発火しませんが、Rect から Grid に移動すると発火します。Grid から Rect に移動するときも起動しません。異なるバブリング戦略?

これが私が取り組んでいるものです。 各 Rectangle が YELLOW である 2 番目の列を調べます。 上部の長方形を押して、下部の長方形までドラッグすると、ハイライトされています。 一番下の長方形に到達したら、何らかのアクションを実行するためにボタンアップイベントを発生させたいと思います..うまくいきません!

これが私が取り組んでいるものです。各 Rectangle が YELLOW である 2 番目の列を調べます。上部の長方形を押して下部の長方形までドラッグすると、それらが「強調表示」されます。一番下の長方形に到達したら、何らかのアクションを実行するためにマウスボタンアップイベントを発生させたいと思います..うまくいきません!

これが、このタイプの「ハイライト」メカニズムまたはこの状況での Rectangle の完全な誤用に対する奇妙な解決策のように思われる場合は、恥ずかしがらずにそう言ってください。私は WP8 の初心者です。

4

1 に答える 1

2

すべての四角形にGrid 追加することを検討してくださいMouseButtonUp(マウスがグリッド上で離されている限り)。ただし、 に基づいて移動された四角形を計算する必要がありますMouseEventArgs.GetPosition

UIElement.CaptureMouse()、も調べたいと思うかもしれません.ReleaseMouseCapture()。マウスをキャプチャするということは、マウスが-から離れたときでも が起動されることMouseButtonUp 意味しますが、 が呼び出されるまで、 が呼び出されるまで (したがって、強調表示する四角形を計算する必要があります)、キャプチャする四角形に対して と が発生します。MouseButtonDownRectangleMouseMoveMouseButtonUpReleaseMouseCapture()

于 2013-10-03T22:15:16.983 に答える