Welcome to irritatedVowel.com Sign in | Help

POKE 53280,0: Pete Brown's Blog

Silverlight, WPF, Windows Client Development, Woodworking, .NET Programming, CNC, Nature, and other topics.

Subscribe

Subscribe to my feed
Add to Technorati Favorites

My Book

Order my upcoming book, Silverlight in Action, covering Silverlight 4, ViewModel/MVVM, WCF RIA Services, MEF and more

About Pete Brown

Pete Brown is a Microsoft Developer Division Community Program Manager, focusing on Windows Client Development as well as a former Microsoft Silverlight MVP and INETA Speaker. Pete writes on a number of topics including Silverlight, WPF, .NET, woodworking and working as a consultant in the DC area. read more

Community Events


who's online

AddThis Social Bookmark Button

Silverlight 2 ListBox Abuse

During all my Silverlight and WPF talks, one point I try to make is that in those technologies, the important aspect of an out-of-the-box control is not its particular display properties, but its model and its ability to be customized.

Back when we used to do Windows Forms work, you often picked third-party controls based on how many UI customization tweaks they offered (fonts, colors, one or two values in a column, ability to have a drop-down list inside a cell etc.). In WPF and Silverlight, this is largely moot as the designer has a lot of flexibility with the user interface. Need to program against a listbox, but have the flexibility to have it look like a carousel? No problem, because the two are conceptually the same thing (list of items, way to navigate between them, one item is "selected" etc.).

This just came up on a Silverlight mailing list. I had forgotten all about this excellent set of examples. Be sure to check out the Silverlight 2 Solar System, Slide Show and Marquee examples, all of which are based on unusual uses of standard controls like the ListBox and ScrollViewer.

Below is a screenshot of one use of a ListBox

Planets shown smaller than actual size

  Add to Technorati Favorites
Posted: Tuesday, May 13, 2008 3:52 PM by Pete.Brown

Comments

POKE 53280,0: Pete Brown's Blog : Silverlight 2 ListBox Abuse said:

PingBack from http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/05/13/Silverlight-2-ListBox-Abuse.aspx
# May 13, 2008 4:01 PM

POKE 53280,0: Pete Brown's Blog : Silverlight 2 ListBox Abuse said:

PingBack from http://community.irritatedvowel.com/blogs/pete_browns_blog/archive/2008/05/13/Silverlight-2-ListBox-Abuse.aspx
# May 13, 2008 4:27 PM

Tom said:

"Need to program against a listbox, but have the flexibility to have it look like a carousel? No problem, because the two are conceptually the same thing..." "No problem"? Actually there's a big problem. Listbox neither looks nor behaves like a carousel. The gap between these controls seems far too wide to be bridged by a designer through "UI customization". Who's going to write the layout algorithm? The animation system? The configurable acceleration, deceleration, drag and drop, you name it. All of the stuff that makes a carousel a carousel, that a listbox knows nothing about. I don't think UI customization is going to cut it. Unless by "look like a carousel", you meant it in a VERY limited way. Sure, controls quite often have some things in common (like a collection of items, concept of a selection, etc). But I don't think this makes them "conceptually the same thing".
# May 13, 2008 5:35 PM

Christopher Steen said:

Link Listing - May 13, 2008
# May 14, 2008 2:41 AM

Christopher Steen said:

Sharepoint Web Parts the Simple Way - Use User Controls [Via: janiver@microsoft.com ] ASP.NET Developer...
# May 14, 2008 2:42 AM

Pete.Brown said:

@Tom you're right, there is often more to it to create an advanced carousel. Time permitting, I'll put together something more along the lines of what I was thinking.

I'd also like to note that in WPF you actually can get much further without any code, as it has better support for triggers and binding.

Pete

# May 21, 2008 11:43 PM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

Enter the text you see in the image:

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