入力デバイス

マウスの座標を取得する

 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】

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016/04/29 (金) 11:41:39 (2940d)

PCpዾyǗlgĂ܂}WŔ܂z 萔O~ył񂫁z Yahoo yV NTT-X Store

z[y[W ̃NWbgJ[h COiq ӂ邳Ɣ[ COsیI COze