マウスの座標を取得する † SilverLightのコンテキストメニューなどのポップアップコントロールを表示させたい場合、やはりマウスがクリックしたところに表示させたいですね。この時、マウスのイベントのMouseButtonEventArgsパラメータを利用します。GetPositionのパラメータをnullにしたらよい。 ソースコード例: e.GetPosition(null); ある時、マウスは指定するコントロールに対する相対的な座標を取得したい場合、e.GetPositionのパラメータに指定したいコントロールの名前を設定すればいいです。 マウスのダブルクリック †現在Silverlightまだダブルクリックをサポートしていません。ここでダブルクリック処理を真似にするサンプルを紹介します。 Point _clickPosition; public DateTime _lastClick = DateTime.Now; private bool _firstClickDone = false; void MainPage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { UIElement element = sender as UIElement; DateTime clickTime = DateTime.Now; TimeSpan span = clickTime - _lastClick; if (span.TotalMilliseconds > 300 || _firstClickDone == false) { _clickPosition = e.GetPosition(element); _firstClickDone = true; _lastClick = DateTime.Now; } else { Point position = e.GetPosition(element); //クリック動作にマウスが移動されたかどうか if (Math.Abs(_clickPosition.X - position.X) < 4 && Math.Abs(_clickPosition.Y - position.Y) < 4) { //ここでダブルクリック処理を記述します。 } _firstClickDone = false; } } フレッツ光が月額556円~【GMOとくとくBB】 コメント: |