Surface Dial 実装のための概要

衝撃の発表だった Surface Studio と Surface Dial 。すでに同僚が何人かシアトルの現地でSurface Studio やSurface Dial を見てきたらしいが、みな口をそろえて「あれはすごい」とほめまくる。

Image of Surface Dial with Surface Studio さて、その Surface Dial は新しいタイプのインプットデバイスとなる。まぁ、Bluetooth接続の入力デバイスとなるので、Bluetooth Keyboard や Bluetooth Mouse と同じと言えば同じである。ただこれを見ると「Windows ホイール デバイス」というカテゴリが新たに出来たようにも思える。

Surface Dial interactions

この中でも「ここではSurface Dial の対応方法について会いているが、これは Windows ホイールデバイス全般に当てはまる」と。

オンスクリーンは Surface Studio 専用

ダイアルをクリックするとメニューが使えるが、特にSurface StudioについてはDial をデスクトップ上に乗せてそこに専用メニューを表示させることが出来る。これをonスクリーンメニューという。

Surface Dial off-screen menu Surface Dial on-screen menu
Surface Dial off-screen menu Surface Dial on-screen menu

システムとの連携

デフォルトでは固定の動きとなるようだ。例えばデスクトップでホイールを回せば明るさ調整となるし、メディア再生中であれば次の曲に進む/戻るといった挙動になる。されらに InkCanvas と InkToolBar とはより連携した動きになる。

Surface Dial with Surface Pen

つまり使い方によってはペン選択、別の場面では定規のためのツーとし対応されることになるでしょう。そうなれば、InkCanvas を追加するだけでそこは Dial 対応ということになる。

Surface Dial menu with ruler tool for the Windows Ink toolbar

実装するにあたって

Dial や Windows ホイールデバイスを使う機能をカプセル化したクラスが、RadialController クラスのようでえある。RadialController.CreateForCurrentView() でインスタンスが作れる。

Image of the sample app UI

ちなみに、UWP及びWin32APIとして対応する。そのほかRadialControllerMenuItem とか。メニュー用の取り扱いもきちんとインプリメントされている。

RadialContoller なのでイベントはRotationChangedなどなど。当然Button Clicked もある。これを見ている限りはマウスとほとんど同じようなイメージで扱うことが出来るだろう。