locked
【silverlight】マウスホイールを用いた拡大・縮小について RRS feed

  • 質問


  • いつもお世話になっております。
    以前質問させて頂いた、

    【silverlight】フォーム内の拡大・縮小について
    http://social.msdn.microsoft.com/Forums/ja-JP/silvelightdotnetja/thread/00535080-2cc5-4a36-b89a-8c04106a6d7e

    に関連して質問をさせてください。
    前回、教えて頂いた通り作ることで、画面の拡大・縮小や、
    画面のドラッグ&ドロップによる操作を作ることができました!
    本当にありがとうございます。

    そこで、次にマウスホイールで画面を拡大・縮小ができないかと考えていましたが、また行き詰まり……
    マウスホイールイベントで設定するも、考え方がまとまっていないため、上手くいきません。
    もしよろしければ考え方等教えて頂けると幸いです。
    よろしくお願いいたします。

    2010年9月22日 9:01

回答

  • MouseWheel イベントを使えば可能です。上下のどちらにマウスホイールを転がしたかどうかは、イベント引数 MouseWheelEventArgs の Delta プロパティで判断できます。

    private void UserControl_MouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
    {
      if (0 < e.Delta)
      {
        // 上に転がしたら拡大
        _myScale.ScaleX += 0.5;
        _myScale.ScaleY += 0.5;
      }
      else if (e.Delta < 0)
      {
        // 下に転がしたら縮小
        _myScale.ScaleX = Math.Max(_myScale.ScaleX - 0.5, 0.5);
        _myScale.ScaleY = Math.Max(_myScale.ScaleY - 0.5, 0.5);
      }
    }
    
    

    サンプルコードは「フォーム内の拡大・縮小について」に掲載されているコードを改造したものです。

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答としてマーク sakuko 2010年9月24日 0:37
    2010年9月22日 11:01

すべての返信

  • MouseWheel イベントを使えば可能です。上下のどちらにマウスホイールを転がしたかどうかは、イベント引数 MouseWheelEventArgs の Delta プロパティで判断できます。

    private void UserControl_MouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
    {
      if (0 < e.Delta)
      {
        // 上に転がしたら拡大
        _myScale.ScaleX += 0.5;
        _myScale.ScaleY += 0.5;
      }
      else if (e.Delta < 0)
      {
        // 下に転がしたら縮小
        _myScale.ScaleX = Math.Max(_myScale.ScaleX - 0.5, 0.5);
        _myScale.ScaleY = Math.Max(_myScale.ScaleY - 0.5, 0.5);
      }
    }
    
    

    サンプルコードは「フォーム内の拡大・縮小について」に掲載されているコードを改造したものです。

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答としてマーク sakuko 2010年9月24日 0:37
    2010年9月22日 11:01
  • なかむら様

    返信が遅くなって申し訳ありません。
    そして、いつもありがとうございます。
    Deltaプロパティ……なるほど。。。
    ありがとうございます!
    これを元により使いやすいものができそうです。

    なかむら様のおかげで、少しずつですが、
    コードの仕組みが分かるようになってきました。
    またご迷惑をおかけすることもあると思いますが、
    よろしくお願いします。

    2010年9月24日 0:36