Welcome to MSDN Blogs Sign in | Join | Help

Syndication

News

Are you a woman in technology?

  • I'd love to share your story in my "Featured Women in Technology" posts! Email me at featured@microsoft.com.

Links


Surface Development Part 2: Surface Controls

Are you familiar with WPF?  If so, you’re most of the way there with Surface development!  Many of the Surface controls derive from and have similar functionality to corresponding WPF controls, but provide extra enhancements for the Surface.  For example, the Surface’s SurfaceWindow has very close functionality to the WPF Window, except the SurfaceWindow runs full screen on the Surface (because all Surface apps run maximized on the Surface space) and automatically orients the display toward the user (since the Surface is a 360-degree environment).  The table below illustrates some examples of WPF controls, the equivalent Surface controls, and the extra functionality that the Surface control gives to support the Surface multi-touch experience.

WPF Control Surface Control Extra Functionality in Surface Control
Window SurfaceWindow Runs full screen on the Surface, oriented towards the user
Menu SurfaceMenu Multiple menus can be used at the same time (multi-touch support)
Button SurfaceButton Only “clicks” when all fingers are removed from button
ListBox SurfaceListBox Determines scrolling vs. select, allows flicking gesture to scroll through list, provides elastic effect when end of list is reached
ScrollBar SurfaceScrollBar Allows flicking, scroll bar grows thicker to better fit finger when touched and then returns to original thin UI
TextBox SurfaceTextBox Invokes virtual keyboard oriented towards user when touched

Of course, this is not a comprehensive list of controls.  There are many more Surface controls than just these.  For example, in addition to the SurfaceButton, there is a SurfaceRadioButton, SurfaceCheckBox, and SurfaceToggleButton, and they share the extra functionality of only clicking when all contacts are removed from the control.  So if two users touch a SurfaceButton or one of these other controls, and then one user lifts his finger, the "Click" event will not fire until the second user lifts her finger too. 

However, this table does demonstrate the broad categories of controls available, and gives you a flavor for the extra functionality that you get with the Surface version - support for multi-touch, the 360-degree environment, and the other unique attributes of Surface. 

Finally, the Surface SDK (where these controls live) is not available to the public at this point.  The Surface team has given away access at major conferences such as PDC if you attended the Surface sessions or tried the Surface hands-on labs.  You also get access to the Surface SDK when you purchase a Surface developer unit.  If you have a serious interest in Surface development, let me know. 

Published Tuesday, May 19, 2009 5:40 PM by jennmar

Filed under: ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Surface Development Part 2: Surface Controls | ASP NET Hosting @ Tuesday, May 19, 2009 12:57 PM

PingBack from http://asp-net-hosting.simplynetdev.com/surface-development-part-2-surface-controls/

Surface Development Part 2: Surface Controls | ASP NET Hosting

# Surface Development Part 2: Surface Controls - Jennifer Marsman @ Tuesday, May 19, 2009 8:23 PM

Thank you for submitting this cool story - Trackback from DotNetShoutout

DotNetShoutout

# Surface Development Part 5: Futures and Resources @ Friday, May 22, 2009 2:38 PM

Hopefully you've learned a little about Surface development this week!  I didn't originally intend

Jennifer Marsman

# Developing UI for Microsoft Surface @ Friday, May 29, 2009 9:39 AM

I’m a huge Microsoft Surface Fan. Jennifer Marsman just completed a blog series on developing for the Surface complete with embedded videos. Click on the links to check them out. Surface Development Part 1: What is the Microsoft Surface? Surface Development

Misfit Geek

# Jennifer Marsman Blogs on Surface Development @ Friday, May 29, 2009 11:55 PM

For all you Surface Fans, my colleague Jennifer Marsman has written a series of blog posts about developing

Chris Koenig

# Jennifer Marsman Blogs on Surface Development @ Tuesday, June 02, 2009 10:51 PM

For all you Surface Fans, my colleague Jennifer Marsman has written a series of blog posts about developing

ChrisKoenig

# re: Surface Development Part 2: Surface Controls @ Monday, August 03, 2009 1:52 PM

Nice introduction... looking forward for more!

Radu

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
Page view tracker