Contacts
The main component of Microsoft Surface applications is touch and contact-enabled controls, events, and gestures. These elements enable you to develop applications that create natural and intuitive user experiences.
Contact Types and Events
The Microsoft Surface SDK recognizes three distinct kinds of contacts:
-
Finger: One or more fingers are placed on, moved along, or lifted up from the Microsoft Surface screen.
-
Blob: Any object is placed on, moved along, or lifted up from the Microsoft Surface screen.
-
Tagged Objects: Any object that has an attached tag is placed on, moved along, or lifted up from the Microsoft Surface screen.
Gestures
Gestures are user interactions that applications recognize without the context of what user interface elements they occur over. Typically, gestures are interactions that do not involve changes in the {X, Y} position of the user input. The Microsoft Surface SDK exposes events for two gestures:
-
Tap
-
Press-and-hold
Manipulations
Manipulations are user interactions that an application can properly interpret only in the context of user interface elements. For example, an application could interpret two fingers that are moving away from each other as a "stretch" manipulation, as two separate "move" manipulations, or as several other actions. The actual interpretation depends on what user interface elements appear beneath the interactions. The Microsoft Surface SDK exposes manipulations, in the form of controls, that respond to specific manipulations:
-
Drag
-
Pan (SurfaceScrollViewer, SurfaceListBox)
-
Flick
-
Move (ScatterView)
-
Resize
-
Rotate
If you develop your application in the Core layer, you must create all of these contact-enabled elements yourself. The Presentation layer enables you to create versatile and graphically rich experiences with the scroll viewer and scatter view controls.
Manipulations and Inertia Processors
A manipulations processor provides functionality to handle groups of contacts as a single composite. An inertia processor provides functionality for implementing real-world properties like movement and friction as users move virtual objects around on a Microsoft Surface unit. These processors are implemented in the Microsoft.Surface.Core.Manipulations and Microsoft.Surface.Presentation.Manipulations namespaces. For more information, see Using Manipulations and Inertia.
Contact Visualizations
Microsoft Surface WPF controls provide visual cues to users regarding contacts. These contact visualizations help users understand how the system interprets a contact. Contact visualizations are implemented in the Microsoft.Surface.Presentation.Controls.ContactVisualizations namespace. For more information, see Contact Visualizations.
