Partager via


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.

Comments

  • Anonymous
    May 19, 2009
    PingBack from http://asp-net-hosting.simplynetdev.com/surface-development-part-2-surface-controls/

  • Anonymous
    May 19, 2009
    Thank you for submitting this cool story - Trackback from DotNetShoutout

  • Anonymous
    May 22, 2009
    Hopefully you've learned a little about Surface development this week!  I didn't originally intend

  • Anonymous
    May 29, 2009
    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

  • Anonymous
    May 29, 2009
    For all you Surface Fans, my colleague Jennifer Marsman has written a series of blog posts about developing

  • Anonymous
    June 02, 2009
    For all you Surface Fans, my colleague Jennifer Marsman has written a series of blog posts about developing

  • Anonymous
    August 03, 2009
    Nice introduction... looking forward for more!

  • Anonymous
    March 28, 2012
    Hello I have a serious interest in Surface development, and I let U know :) (beginner) Well something new in Surface (code, projects, samples, ideas, tutorials, video tutorials etc ) ? Thank U