【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

選択・移動・ズーム

Silverlightは左クリックしかサポートしていません。ホイールはHTMLからイベントを取れば扱えます。

右クリックはWindowlessモードにすればHTMLからイベントが取れるようになります。ですがWindowlessモードはIMEがサポートされないなど制限があるため、なるべく使わない方が良いようです。

中(ホイール)クリックはコンテキストメニューを出している間だけHTMLからイベントを取れるようですが、これでは実用に耐えません。

図形操作ではオブジェクトの選択・移動と画面のスクロール・ズームをマウスだけで行えると便利です。試験的に左ボタンとホイールでの操作を実装してみました。⇒ 動作確認とソース

経緯

ホイールの回転は使えますが、ホイールのクリックやドラッグは使えません。どうやってスクロールさせれば良いでしょうか。

  1. 動作モード切替
  2. キーボード併用
  3. オブジェクトがなければスクロール
  4. オブジェクトを選択していなければスクロール

1.はマウスの移動量が多くなります。2.は片手で操作できません。3.はスクロールのつもりがオブジェクトを移動させてしまうミスが多発しそうです。そこで3.の挙動を少し変更して、オブジェクトの選択をボタンのDownではなくUpで行うようにしてみました。Upせずに動かせば選択されずにスクロールになります。オブジェクトを移動させながらホイールを回せば、ズームしながら着地点を探すような操作も可能です。

少し操作してみて、ラバーバンドでの複数選択をどうするかという問題に気付きました。後で考えてみます。