Blacklight updated for Silverlight 2 RC0

Back from holiday, and just a short post to let you know that Blacklight has been updated for Silverlight 2 RC0.

To get the release candidate for Silverlight 2 go here:

To view the RC0 compatible version of the Showcase, you can go to:

You can still see the Beta 2 version of the Showcase here, however:

I have updated release v0.1 to also have the RC0 ready source code too. So head over to for the bits.


Comments (9)

  1. Cox, Ken says:

    This is a really generous and helpful Silverlight example.

    Don’t miss it folks!


  2. In this issue: Laurence Moroney, Corrina Barber, Adam Kinney, Matthias Shapiro, Terence Tsang, Chris

  3. gabouy says:

    Hi martin,

    Excellent work on the blacklight controls project. Best free Silverlight components I’ve seen so far.

    By the way I’ve made a couple of small changes to the DragDockPanelHost to include a DockingPosition property in order to allow for docking to be top, bottom, left, or right.

    Can I contribute these changes to the project? What would be the best way to do it?



  4. Chau says:

    Hi Martin,

    How does the navigation pattern/design here compare to other navigation models? I know this project is concentrating on the effects and UI, but can you give us your advise on using this navigation vs. others?



  5. martin.grayson says:

    Hey gabouy,

    Thank you for your kind words and thanks for putting the patch in – that is the best way currently to contribute.

    I love it, really great idea. I will add it to the control, if thats cool. I also need to update the code for UpdatePanelLayout to base its positioning on the selected dock location, but yeah, this is a quality suggestion, and a very nice implementation.

    Thanks dude, if you have any more ideas, shout!


  6. martin.grayson says:

    Hi Chau,

    The navigation here is pretty simplistic. It requires that every sample in the application is loaded at the beginning, even if a user doesnt visit it. This results in a prolonged load time, larger memory requirement, and a perf hit (not noticable at the moment, but could be in future releases). I also have a problem with the fact that each time you change the top level navigation, the sub navigation is built again from scratch, so I cant easily persist selections from the top level navigation.

    Really, I would love a navigation system that is driven by XML, so i can set properties and options without recompiing. You will see in Page.xaml.cs that the navigation is hardcoded. That said, it works quite nicely here, as it gives me some heirachy, and I can have a many sub menus a I please, thanks to embedding items controls in data templates of item controls.

    If enough requests come through, I could add it as a sample to the controls project itself!

    Thanks for your interest. We have another release coming soon too, so keep checking back!


  7. gabouy says:

    Hi Martin,

    Please add the patch to the control, I’d like to keep working with the project’s release rather than fork my own version.

    Another feature I might need, and thus implement is some kind of column, and row span support. In order to enable some panels in the initial view to span multiple rows or columns.

    One issue I’m struggling with right now is that Minimized event seems to be fired only when going from Maximized to what I call "Mediumized", but when you Maximize one of the Minimized options the current Maximized goes to Minimized without firing the event (could u make any sense of this?) This is handled with the ignoreUnCheckedEvent flag in a not very intuitive way. It might be best to fire three events since there are three states, and not two (Minimized, Mediumized, and Maximized).

    Btw if you release some other control I’ll try it and blog about it. What else are you cooking right now?

  8. martin.grayson says:

    Hey gabouy,

    I see you have noticed that the minimized event is blocked! The reason for this is that if it fired, the DragDockHost would pick up all of the events, and kick off multiple animations on the same targets. This would degrade the animation perf.

    The method I have taken here doesnt feel like its the correct approach, and was more a workaround. If you remove it and take alook at what happens, you will see what I mean.

    Good luck with the column / row span stuff too. I built a basic system (that you can see in the patient journey demonstrator) however, didnt have enough time to get my head around the math for when you are swapping panels around – e.g. calculating affected grid cells and where to move the panels.

    If you get something going, I will definately be interested in putting it in!

    In terms of what i am currently working on, there are a few things in the pipeline…

    – glow and shadow effects for other controls (big request from the designers I work with)

    – handling mouse wheel and right click events

    – a blend interaction manager – hooking up animations etc. without wiritng any code

    – a resource dictionary manager, for using multiple resource dictionaries in an application

    I do all this in my own time, so some of the more complicated items will take a little longer, but I am getting there. If you have any ideas, please put them in!


Skip to main content