Thursday, November 19, 2009

@PDC09 – Day 3 – Multitouch in Microsoft Surface and Windows 7 for .NET Developers

Multi touch

  • …creates new opportunities
    • software that is
  • is not new
    • researchers have been exploring this
  • is now going mainstream
    • hardware
    • OS
    • SDK’s

Microsoft surface and WPF4

  • with surface, microsoft became a thought leader in multi touch
  • surface has been shipping a multi touch dev platform for several years
  • Touch API’s baked into sdk

WPF 4 Touch Capabilities

  • (Beta 1)
    • Manipulation Events (pan, zoom & rotate gestures)
  • (Beta 2)
    • Touch Events
    • Extensible Touch Device
    • Win7 Touch Device
  • Release
    • ScrollViewer Panning Support
    • WPF controls styles with events

Demo of sample code

  • TouchDown, TouchMove and TouchUp events for canvas or any control
  • e.GetTouchPoint(_canvas)  - returns the coordinates for the touch point
  • _canvas.CaptureTouch(e.TouchDevice)
  • each UI element can capture multiple device events
  • _canvas.ReleaseTouchCapture(e.TouchDevice)

Multitouch in Web in Silverligh

  • Subset of the WPF4 touch input API
    • Reports groups of touch events in “frames”
    • Apps are responsible for hit testing and event routing
  • Manipulation & Intertia processor API

Demo WPF Multitouch Manipulation Events

  • ManipulationStarting event
  • IsManipulationEnabled = true for the elements like Image, to be manipulated for pan, zoom and rotate
  • ManipulationDelta event

Demo Manipulation Inertia (s

  • ManipulationInertiaStarting event (it is called at the end of manipulation, configure the inertia parameters here)
    e.g we can just scroll or throw the images using finger scroll,
  • e.TranslationBehavior.DesiredDeceleration = 0.001;

Inertia behaviors – 1/96th DIP (Device Independent Pixel) per milli sec

Touch Panning Support

  • Only in Release Candidate
  • Cancel() method on manipulation events
  • ScrollViewer handles manipulation events

Microsoft Surface Extensions of WPF

Surface WPF controls

  • Designed for multi touch
  • Designed for simultaneous user
  • Designed for manipulation & inertia

Drawing with Surface Controls

  • SurfaceInkCanvas control
  • ScatterView control
  • SurfaceScrollViewer control

Announcing – Surface Toolkit for Windows Touch

Surface is not just multi touch

  • Windows 7
  • Massive multi touch
  • Multi user experiences
    • Trend : software continues to reduce the need for face to face human interactions
    • Problem
    • Surface bring people together
  • Surface Objects
    • Byte Tags (256 unique values)
    • Identity Tags (move unique values)
  • Surface Optics
    • Determine the shape and size of every input
    • See into certain objects

Announcing – Surface SDK 1.0 is available for public download

No comments: