Microsoft Surface Dial anprogrammiert

Wenn es um die Frage geht, native oder webbasierte Anwendungen zu schreiben, erledigt sich diese ganz schnell, wenn man spezielle Hardware einsetzen möchte.  Zum Test kommt das neue Microsoft Surface Dial Eingabegerät.

Surface Dial

Die Microsoft Surface Produktlinie, soll Apple Produkten in puncto Design Funktionalitäten und Usability Konkurrenz machen. Das sehr schicke Desktop Produkt Microsoft Surface Studio, Adressiert den gehobenen Anwender. Für benutzereingabe kommt ein neues Gerät hinzu das ca 6cm große Surface Dial. Im Wesentlichen eine Art Maus, die fix positioniert ist. Neben dem schicken Design, kann man diese drücken und drehen. In Zusammenarbeit mit dem Surface Studio, kann Surface Dial auf dem Bildschirm platziert werden und so die Position bestimmen. Surface Dial funktioniert aber auch mit herkömmlicher Windows Hardware per Bluetooth. Dann allerdings nur auf dem Schreibtisch als eine Art Maus Ersatz. Das Benutzer Konzept von Surface dial unterscheidet sich allerdings erheblich von einer Maus. Im Kern steuert es eine neue Art von Menü aus Windows 10.

Bildergebnis für Surface dial menu

Jede App kann eine oder mehrere Menu Erweiterungen beinhalten, um die Funktion für Surface Dial einzubinden. Das bedeutet aber auch, das ein Programm explizit für Surface Dial geschrieben werden muss. Ansonsten beschränkt sich die Funktion unter Windows 10 auf die Lautstärke Regelung.
Im nächsten Schritt betrachten wir, wie ein Surface Dial Funktion in die eigene App implementiert wird. Um die Windows 10 API verwenden zu können. Benötigt man einen Visual Studio Project vom Typ UWP - Universal Windows Plattform. In das Projekt muss eine PNG Grafik mit Transparenz hinzugefügt werden, die das neue Logo im die Menu darstellt. Die empfohlene Größe ist 64 mal 64 Pixel.
Das Surface dial wird als Eingabegerät vom Typ her RadialController behandelt. Da nur ein physikalisches Gerät vorhanden ist, ist die entsprechende objekttyp Klasse, als Single Ton implementiert. Per Parameter RotationResolutionInDegrees lassen sich die Auflösung in Grad verändern. Die Standard Auflösung ist 10 Grad. Ein sensitive System löst mit einem Grad auf. Wenn nun die Eigenschaft RotationResolutionInDegrees auf ein Grad gesetzt ist, dann ist das jeweilige Delta maximal ein Beziehungsweise 2 oder im negativen Bereich Grad verändert. Ebenso lässt sich haptische Feedback verändern, mit der Eigenschaft UseAutomaticHapticFeedback.
Die Objekt Referenz des RadialController Objekt hier myController genannt, wird dann das entsprechende Menu Icon hinzugefügt. Um auf die Benutzer Eingabe reagiert zu können, werden Events für Klick oder für die Drehung benötigt. Wenn sie glücklicher Besitzer eines Surface Studio sind, können Sie den Kontakt des Surface dial mit der Surface Studio Bildschirm Oberfläche über das Event ScreenContactStarted erhalten.

   1:   Dim myController As RadialController
   2:      Private Sub MainPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
   3:          myController = RadialController.CreateForCurrentView()
   4:          myController.UseAutomaticHapticFeedback = False
   5:          myController.RotationResolutionInDegrees = 1 '10 Standard 1-2
   6:          Dim icon = RandomAccessStreamReference.CreateFromUri(
   7:              New Uri("ms-appx:///Assets/ppedvlogo.png"))
   8:          Dim myItem = RadialControllerMenuItem.CreateFromIcon("Sample", icon)
   9:          myController.Menu.Items.Add(myItem)
  10:          AddHandler myController.ButtonClicked, AddressOf DialClick
  11:          AddHandler myController.RotationChanged, AddressOf DialRotate
  12:   
  13:          AddHandler myController.ScreenContactStarted, AddressOf DialScreen
  14:      End Sub
  15:   
  16:      Private Sub DialScreen(sender As RadialController, args As RadialControllerScreenContactStartedEventArgs)
  17:          Throw New NotImplementedException()
  18:      End Sub
  19:   
  20:      Private Sub DialRotate(sender As RadialController, args As RadialControllerRotationChangedEventArgs)
  21:          text1.Text = args.RotationDeltaInDegrees
  22:      End Sub
  23:   
  24:      Private Sub DialClick(sender As RadialController, args As RadialControllerButtonClickedEventArgs)
  25:          ButtonToggle.IsOn = Not ButtonToggle.IsOn
  26:      End Sub

 


Microsoft Surface dial ist mit einem Straßen Preis von Rund 100 Euro ein erschwingliches modernes eingabegerät, das aber seine Berufung noch finden muss.

Kommentare sind geschlossen