Even a chimp can write code

Thursday, May 03, 2007

Silverlight UI Controls

Update [Apr 2009]: The post below is now obsolete. There is now a great ecosystem of UI controls for Silverlight. You can start with the Silverlight Toolkit, a Microsoft provided collection of Silverlight controls, components and utilities made available for your development with a permissive license (MSPL). Besides, there are excellent controls from ComponentOne, Telerik, Infragistics etc. There's also some good documentation on Silverlight Controls on MSDN.

-----

If you've played with Microsoft Silverlight 1.0 Beta or 1.1 Alpha bits, you've no doubt noticed that while there's Canvas, TextBlock and other such controls, there is no Button or ListBox or even layout elements like StackPanel or Grid. Rest assured, your UI development needs are always on our mind.

If you download the Silverlight 1.1 Alpha SDK, you'll see a UI controls package in there. You didn't think we'd leave you in the lurch, did you? Although it is very easy to whip up a Button control with XAML and some code in Silverlight, that detracts from your app building. To address this, we've released a modest set of controls in the Silverlight UI Controls package. These include:

  • Button
  • ScrollBar
  • ScrollViewer
  • Slider
  • ListBox

Also included are a couple primitives like RepeatButton, Thumb and GripThumb.

All of the controls in that package are managed code controls i.e. they rely on Silverlight 1.1 Alpha and the CLR and Silverlight framework in it.

These controls currently sport the Silverlight "Dawn" look and feel. We're releasing source code for these controls so you can modify and customize them as appropriate. There is a readme file with additional information and the code is peppered with comments, all which the agile diehards are free to ignore, 'cause the code is the documentation. The control behavior is in C# code-behind files, while the control templates, i.e. the visual aspects governing look and feel, are in XAML markup files. Another example of separating UI from behavior, as architecture astronauts have been telling us since the dawn of time.

Silverlight 1.1 Alpha SDK - UI Controls

Controls such as ScrollBar, ScrollViewer, ListBox and Slider are composed of other controls. We picked this mix because it accentuates the diversity of the control set and allows you - the designer or developer - to look at the source code and understand the Silverlight framework, the inter-dependencies between controls, and not to mention, the quirks in the control set arising from some features being absent in the 1.1 Alpha.

Please use these controls in your applications targeting Silverlight 1.1 Alpha. In fact, it should be pretty simple to take the XAML pieces, tie in some JavaScript and have all of this run on 1.0 Beta. But I'll leave that to the community.

As always, direct comments and bug reports on the UI controls to the Silverlight Forums. If you have questions about the control roadmap or other considerations made while developing this set, drop me a line here.

Labels: , ,

Email this | Bookmark this

13 Comments:

  • Does this mean that Silverlight will be supporting control templating concepts that previously were only available if you stepped up to WPF?

    If so, how close will the model be to WPF's... if at all?

    By Anonymous Anonymous, at May 3, 2007 at 9:17 PM  

  • Drew, from a quick overview it appears that a control does support templates and the like. Although there doesn't appear to be a native concept of a UserControl...it shouldn't be difficult to create one. I'll try porting the PowerGrid over to WPF/E 1.1 and see if I run into any problems.

    By Blogger Brownie, at May 4, 2007 at 10:33 AM  

  • "Dawn" look and feel? Ouch. This skin design needs some retooling to bring it up to professional standards. Get a visual designer to have a look at it.

    By Blogger Unknown, at May 5, 2007 at 11:11 PM  

  • I strongly suggest that any "standard" Silverlight controls that get shipped (even as an optional component) be split into two layers: an abstract control to capture behaviour (with a bare-minimum "default" visual appearance) and a visual style layer that can be swapped.

    That enables a number of scenarios: Coder gets to have "live" controls to code against in a developing system while the designer gets to finalise the styles. Small 3rd-party developers get to ship "clip-style" libraries for the standard controls, to give designerless coders some new visual options. Coder can extend/modify the behaviour of the control and still apply the appropriate visual styling. Microsoft doesn't have to be in the control-widget business unless it wants to be.

    By Blogger Unknown, at May 7, 2007 at 3:12 PM  

  • Will future releases of Silverlight have the StackPanel control? I'm trying to port my WPF app to Silverlight, and the lack of a StackPanel is causing a lot of issues :S!

    By Anonymous Anonymous, at May 8, 2007 at 7:14 PM  

  • try extracting the 1.1a sdk controls on vista with avg 7.5 it's almost impossible because of the hiiden js extension...

    By Anonymous Anonymous, at May 9, 2007 at 5:45 AM  

  • Drew: Good question; this is certainly on the team's radar. At this early stage I don't have anything concrete to announce.

    Randy: Give me specifics and I'll forward them on to our visual designers who created the look and feel.

    umuhk: Styling and Templating would achieve this, right? I think Microsoft's role would be limited to delivering basic controls (so the wheel isn't constantly reinvented), enabling the user control ecosystem and solving the hard problems like editing/ databinding/ layouts etc. so app developers don't have to.

    Anon @ 7:14: A layout system and layout containers will exist. Thanks for the feedback on StackPanel. That helps.

    Anon @ 5:14: I'm forwarding this feedback to folks who own the SDK package. Thanks for the tip; apologies for the bad experience there.

    By Blogger Ashish Shetty, at May 15, 2007 at 10:54 AM  

  • I need an example of a TextBox control or some control that takes text. A text-receiving control example is mysteriously missing...

    By Anonymous Anonymous, at May 16, 2007 at 7:12 AM  

  • I agree with the above comment

    By Anonymous Anonymous, at May 24, 2007 at 2:28 PM  

  • Ditto. A TextBox control is definitely required. Layout controls would also be a big help.

    By Blogger Unknown, at July 5, 2007 at 3:06 PM  

  • Sample game 'Sprawl' has Text input box. Take a look at how they done it.

    By Anonymous Anonymous, at September 27, 2007 at 4:38 PM  

  • Unless MS releases a set of standard controls: text box, button, checkbox, radio, etc. SilverLight won't amount to much from the business perspective. If all they want is to build another Flash for pretty animations, I'm skeptical.

    By Anonymous Anonymous, at October 31, 2007 at 9:47 AM  

  • Yeahhhhhhhh riggght.

    As a scientific of programmation
    I think that having SilverLight packaged with everything it needs to make REAL RIA !!!!!!!!!!! I repeat, REAL RIA !!!!!!!!!!! then and only then it'll be a viable option to consider for developping WEB APPLICATION !

    TextBox, ListBox, ComboBox, StackPanel, ListView, Grid, ALA .............

    By Anonymous Anonymous, at November 14, 2007 at 4:40 AM  

Post a Comment | Home | Inference: my personal blog