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 DotNetShoutoutAnonymous
May 22, 2009
Hopefully you've learned a little about Surface development this week!  I didn't originally intendAnonymous
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 DevelopmentAnonymous
May 29, 2009
For all you Surface Fans, my colleague Jennifer Marsman has written a series of blog posts about developingAnonymous
June 02, 2009
For all you Surface Fans, my colleague Jennifer Marsman has written a series of blog posts about developingAnonymous
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