Official links are here. Or see the sample I put together below.
Instructions on pairing: https://www.microsoft.com/surface/en-us/support/getting-started/meet-surface-studio-surface-dial
Coding instructions: https://msdn.microsoft.com/en-us/windows/uwp/input-and-devices/windows-wheel-interactions
Official sample: https://github.com/Microsoft/Windows-universal-samples/tree/b78d95134ce2d57c848e0a8dc339fc362748fb9c/Samples/RadialController
It's a simple app.
- Pick a track and it starts playing.
- Tap the dial to toggle pause and playback.
- Scroll the dial to move forwards and backward through the track.
- There's also a button to toggle playback and a visualization of how far through the track it is.
- It's possible to automatically select the (radial) menu item but I couldn't get it to set in the page constructor, OnNavigatedTo event, or the Loaded event. Because it's tied to the window (so different apps can have different menu items selected) I can understand why it needs a window available but I would have thought this possible in the Loaded event. Instead, I set this when a track is picked in my code.
- Handling velocity of scrolling
- Haptic feedback
- Placement on screen (but I'll need a Surface Studio for that)
Code embedded below and at https://gist.github.com/mrlacey/892d178f01e622b82bfb901c836f116b#file-mediadial-xaml
Other SurfaceDial projects to check out: