multi touch on microsoft surface and windows 7 for net developers l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Multi-Touch on Microsoft Surface and Windows 7 for .NET Developers PowerPoint Presentation
Download Presentation
Multi-Touch on Microsoft Surface and Windows 7 for .NET Developers

Loading in 2 Seconds...

play fullscreen
1 / 52

Multi-Touch on Microsoft Surface and Windows 7 for .NET Developers - PowerPoint PPT Presentation


  • 433 Views
  • Uploaded on

CL27. Multi-Touch on Microsoft Surface and Windows 7 for .NET Developers. Anson Tsao Lead Program Manager WPF. Robert Levy Program Manager Surface. Win one of thirty $50 gift card!!! Complete a quick survey at www . WontTakeLong . com. Agenda. Introduction

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Multi-Touch on Microsoft Surface and Windows 7 for .NET Developers' - alarice


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
multi touch on microsoft surface and windows 7 for net developers
CL27

Multi-Touch on Microsoft Surface and Windows 7 for .NET Developers

Anson Tsao

Lead Program Manager

WPF

Robert Levy

Program Manager

Surface

agenda
Agenda
  • Introduction
  • Multi-touch in WPF 4 & SL 3
    • Raw Input APIs
    • Manipulation/Inertia APIs
    • Controls
  • Microsoft Surface: Beyond Touch
    • Controls
    • Unique capabilities
  • Roadmap for platform alignment
  • Obligatory slides
  • Q&A
multi touch
Multi-Touch…
  • …creates new opportunities.
    • Software that is intuitive for users to walk up & master
    • Software that is collaborative with multiple users
  • …is not new.
    • Researchers have been exploring this stuff for decades
  • …is now going mainstream.
    • Hardware: Robust touch-capable hardware from Microsoft and OEMs
      • Dozens of Win7 touch devices now available
    • OS: Windows 7 has great touch support baked in
    • SDKs: Microsoft is making touch easy to leverage
    • You: Developers & designers creating innovative apps that take advantage of the technology
microsoft surface wpf
Microsoft Surface & WPF
  • With Surface, Microsoft became a thought leader in the multi-touch arena
  • Surface has been shipping a multi-touch dev platform for several years
    • Built as a set of extensions to WPF 3.5
  • Touch APIs from Surface are being baked into WPF 4 for cross-platform use
multi touch on the web with silverlight
Multi-Touch on the Web with Silverlight
  • Subset of the WPF4 touch input APIs
    • Reports groups of touch events in “frames”
    • Apps are responsible for hit testing and event routing
  • Manipulation & Inertia Processor API will be available on surface.com
    • Same algorithms used by Surface, WPF, & Win7
silverlight 3 touch apis listening
Silverlight 3 Touch APIs - Listening
  • public partial class MainPage : UserControl
  • {
  • public MainPage()
  • {
  • ...
  • // listen to touch events from the system
  • Touch.FrameReported +=
  • new TouchFrameEventHandler(OnFrame);
  • }
  • void OnFrame(object sender, TouchFrameEventArgs e)
  • {
  • // enumerate and respond to touch events
  • }
  • }
silverlight 3 touch apis processing
Silverlight 3 Touch APIs - Processing
  • void Touch_FrameReported(object sender, TouchFrameEventArgs e)
  • {
  • TouchPointCollectiontouchPoints = e.GetTouchPoints(LayoutRoot);
  • foreach (TouchPointtp in touchPoints)
  • {
  • if (tp.Action == TouchAction.Down) {
  • // a new touch has come down
  • }
  • if (tp.Action == TouchAction.Move) {
  • // a previously down touch has moved
  • }
  • if (tp.Action == TouchAction.Up) {
  • // a touch has been removed
  • }
  • }
  • }
manipulation container
Manipulation Container

IsManipulationEnabled=true

IsManipulationEnabled=true

Canvas

  • Handle ManipulationStarting Event
  • Set Manipulation Container

Manipulation Container

  • Handle ManipulationDelta Event
  • Coordinates relative to Manipulation Container

Update RenderTranform

manipulation events
Manipulation Events
  • Initialize:
  • Mode
  • Container
  • Pivot

StartInertia()

StartInertia()

Completed()

inertia behaviors
Inertia Behaviors
  • Deceleration and Displacement/Rotation/Expansion mutually exclusive
  • Deceleration – useful to simulate friction
  • Displacement – useful on page flips
  • Default – no inertial movements
touch panning support
Touch Panning Support
  • In WPF4 Release Candidate Builds (not Beta2)
  • Cancel() method on manipulation events
    • Cancelled manipulation promoted to mouse
  • ScrollViewer handles manipulations
    • PanningMode
      • None, Both, Horizontal/VerticalOnly, Horizontal/VerticalFirst
    • PanningDeceleration
    • PanningRatio
  • Styling changes to intrinsic controls
surface wpf controls make touch ui easy
Surface WPF controls make touch UI easy
  • Designed for multi-touch
  • Designed for simultaneous use
  • Designed for manipulations & inertia
drawing with surface controls
Drawing with Surface Controls
  • <s:SurfaceInkCanvas/>
manipulating photos with surface controls
Manipulating Photos with Surface Controls
  • <s:ScatterView Name=“scatter">
  • <s:ScatterView.ItemTemplate>
  • <DataTemplate>
  • <Image Source="{Binding}"/>
  • </DataTemplate>
  • </s:ScatterView.ItemTemplate>
  • </s:ScatterView>
  • scatter.ItemsSource =Directory.GetFiles(…);
inking on photos with surface controls
Inking on Photos with Surface Controls
  • <s:SurfaceScrollViewer>
  • <s:ScatterView Name=“scatter">
  • <s:ScatterView.ItemTemplate>
  • <DataTemplate>
  • <Grid>
  • <Image Source="{Binding}"/>
  • <Viewbox Margin="50">
  • <s:SurfaceInkCanvas/>
  • </Viewbox>
  • </Grid>
  • </DataTemplate>
  • </s:ScatterView.ItemTemplate>
  • </s:ScatterView>
  • </s:SurfaceScrollViewer>
  • scatter.ItemsSource = Directory.GetFiles(…);
surface toolkit for windows touch

Surface Toolkit for Windows Touch

announcing

Controls, samples, templates, and docs

Coming shortly after the WPF4 launch

surface sdk features for multi touch
Surface SDK Features for Multi-Touch
  • Common controls optimized for Multi-Touch
  • Controls design primarily for Multi-Touch
  • Essential Multi-Touch UX Functionality
surface is not just multi touch
Surface is not just multi-touch
  • Windows 7 & WPF 4 are a great baseline for touch
  • Surface creates unique opportunities with specialized HW
    • Robust top
    • Horizontal form factor
    • Infrared camera array
surface beyond multi touch
Surface: Beyond Multi-Touch
  • Massive multi-touch
  • Multi-user experiences
  • Object recognition
  • Optical engineering
surface multi user
Surface: Multi-User
  • Trend: Software continues to reduce the need for face-to-face human interactions
  • Problem: Happiness and creativity depend on social interactions
  • Surface brings people together
    • Industrial design encourages users to gather
    • Input capabilities allow simultaneous use
    • Apps facilitate collaboration / competition
surface massive multi touch
Surface: Massive Multi-Touch
  • Surface can efficiently track 50+ simultaneous fingers and objects
surface objects
Surface: Objects
  • Uniquely identify & react to billions of tagged objects

Byte Tags

256 unique values

Identity Tags

>340,282,366,920,938,000,000,000,000,000,000,000,000unique values

  • Tags include orientation indictors dots
surface optics
Surface: Optics
  • Determine the size and shape of every input
  • See into and project onto physical objects
optical magic with surface

Optical Magic with Surface

demo

surface.com/monster

optical magic with surface35

Optical Magic with Surface

demo

Behind the scenes video at: surface.com/monster

surface vnext integration extension of wpf 4
Surface vNext Integration & Extension of WPF 4
  • All input is routed through the WPF InputManager
  • Surface input provider can send to multiple windows
  • Surface extension methods provide access to additional input data (tag values, orientation, shape, etc)

Windows Touch input provider

Manipulation & Touch Events

WPF InputManager

Apps

& Controls

Surface input provider

Surface extension methods

getting surface data from wpf extensions
Getting Surface Data from WPF Extensions
  • void OnTouchDown( object sender, TouchEventArgs e )
  • {
  • // built in to WPF
  • point p = e.Touch.GetPosition(this);
  • // calling Surface extension directly
  • TagData t1 = Microsoft.Surface.TouchExtensions.GetTagData(e.Touch);
  • // calling Surface extension w/ C# magic
  • TagData t2 = e.Touch.GetTagData();
  • // some other Surface extensions
  • double o = e.Touch.GetOrientation(this);
  • Ellipse e = e.Touch.GetEllipse(this);
  • }
touch development roadmap
Touch Development Roadmap

Windows 7 (2009)

Native

Win32

Application

WinFormsApplication

WPF Application

Surface Application

Surface SDK

1.0

Multi-Touch Controls

Multi-Touch Controls & API

WPF 3.5 SP1

Managed Wrapper and Interop

Surface Hardware

Windows Vista

Windows 7

Multi-Touch API

touch development roadmap43
Touch Development Roadmap

.NET 4.0 & Surface Toolkit (Q1 2010)

Native

Win32

Application

WinFormsApplication

WPF Application

Surface Application

Surface SDK

1.0

Surface Multi-Touch Controls &API

Multi-Touch Controls & API

Multi-Touch Controls

Surface Toolkit for Windows Touch

Managed Wrapper and Interop

WPF 3.5 SP1

WPF 4.0 w/ Multi Touch APIs

Surface Hardware

Windows Vista

Windows 7

Multi-Touch API

touch development roadmap44
Touch Development Roadmap

Surface vNext(Future)

Native

Win32

Application

WinFormsApplication

WPF Application

Surface Application

Surface SDK

vNext

Surface Multi-Touch Controls &API

Multi-Touch Controls

Surface-specific

Controls & API

Surface Toolkit for Windows Touch

Managed Wrapper and Interop

WPF 4.0 w/ Multi Touch APIs

Surface Hardware

Windows 7

Windows 7

Multi-Touch API

what s next for surface hardware
What’s next for Surface hardware?
  • Things we’re exploring:
    • Cheaper
    • Thinner
    • Vertical
  • Stay tuned…
call to action
Call to Action
  • Windows 7
    • Download Silverlight 3 RTM or Silverlight 4 Beta 1
    • Download Visual Studio 2010 Beta 2 w/ WPF 4.0
  • Surface
    • By Invitation Only: http://community.surface.com
      • Get the Surface SDK & Simulator
      • Check out the samples, docs, and templates
      • Browse and participate in the online forums

Purchase Surface hardware from Surface.com(starting at $12,500)

SDK & resources now available free to everyone! Integrated with TechNet & MSDN for downloads, online docs, and forums.

Start at our portal: http://surface.com/developer

NEW!

related resources
Related Resources
  • Windows Touch Deep Dive (Session CL17)
  • WPF 4 Resources: http://connect.microsoft.com/wpf
  • Surface Resources: http://surface.com
    • Infragistics.com – free controls for Surface v1!
      • Map, Chart, and Carousel
      • CTP now available
    • NSquaredSolutions.com/SurfaceBook
      • Coming soon!
slide49

YOUR FEEDBACK IS IMPORTANT TO US!

Please fill out session evaluation forms online at

MicrosoftPDC.com

learn more on channel 9
Learn More On Channel 9
  • Expand your PDC experience through Channel 9
  • Explore videos, hands-on labs, sample code and demos through the new Channel 9 training courses

channel9.msdn.com/learn

Built by Developers for Developers….