Surface Dial 実装のための概要
衝撃の発表だった Surface Studio と Surface Dial 。すでに同僚が何人かシアトルの現地でSurface Studio やSurface Dial を見てきたらしいが、みな口をそろえて「あれはすごい」とほめまくる。
さて、その Surface Dial は新しいタイプのインプットデバイスとなる。まぁ、Bluetooth接続の入力デバイスとなるので、Bluetooth Keyboard や Bluetooth Mouse と同じと言えば同じである。ただこれを見ると「Windows ホイール デバイス」というカテゴリが新たに出来たようにも思える。
この中でも「ここではSurface Dial の対応方法について会いているが、これは Windows ホイールデバイス全般に当てはまる」と。
オンスクリーンは Surface Studio 専用
ダイアルをクリックするとメニューが使えるが、特にSurface StudioについてはDial をデスクトップ上に乗せてそこに専用メニューを表示させることが出来る。これをonスクリーンメニューという。
Surface Dial off-screen menu | Surface Dial on-screen menu | |
---|---|---|
システムとの連携
デフォルトでは固定の動きとなるようだ。例えばデスクトップでホイールを回せば明るさ調整となるし、メディア再生中であれば次の曲に進む/戻るといった挙動になる。されらに InkCanvas と InkToolBar とはより連携した動きになる。
つまり使い方によってはペン選択、別の場面では定規のためのツーとし対応されることになるでしょう。そうなれば、InkCanvas を追加するだけでそこは Dial 対応ということになる。
実装するにあたって
Dial や Windows ホイールデバイスを使う機能をカプセル化したクラスが、RadialController クラスのようでえある。RadialController.CreateForCurrentView() でインスタンスが作れる。
ちなみに、UWP及びWin32APIとして対応する。そのほかRadialControllerMenuItem とか。メニュー用の取り扱いもきちんとインプリメントされている。
RadialContoller なのでイベントはRotationChangedなどなど。当然Button Clicked もある。これを見ている限りはマウスとほとんど同じようなイメージで扱うことが出来るだろう。