Blacklight v4 for Silverlight 3 Released


It has been a short while since our last Blacklight release (March ‘09), however, I am pleased to say that we are back up and running, and have a brand new release for you.

Want to get straight to the good stuff?

See the latest showcase here.

Get the latest release binaries and source here.

This release addresses 5 main items:

  • Upgrade of Blacklight source and binaries to Silverlight 3
  • Addition of new controls – RangeSlider and WatermarkedTextBox– details below
  • Upgrade of DragDockPanelHost to be an ItemsControl, allowing full data binding support, and support for hosting elements that are not DragDockPanels.
  • Numerous bug fixes, especially with the DragDropPanel controls in both Silverlight and WPF. Some of these fixes did involve some very basic API changing.
  • Update of Blacklight Showcase.

Blacklight, with this release is no longer supporting Silverlight 2 – that was sooooo last month. However, nothing has been implemented in this release that takes advantage of new SL3 features, so, the code will still run fine for SL2.

Range Slider

The range slider control is a ‘double headed’ slider control that allows the user to select a range of values. I have used similar controls in a number of projects, but came up with a nice generic implementation here.

image

Watermarked Text Box

A text box which allows you to place a watermark inside that will display when there is no text, and the control doesn’t have focus.

image

And finally…

We have plenty of new controls in the pipeline, and future versions will begin to take advantage of the new SL3 capabilities – so stay tuned! Please keep the feedback coming in!

Martin


Comments (23)

  1. Blender says:

    This is great! Thank you so much for sharing this. Is there anyplace where there is documentation that shows how to use it correctly?

  2. sivatx says:

    Wow that was wonderful that it did not even load the silverlight application. What a mess. Do you expect everyone to build application based on a product that is not at all stable????

  3. Damon Carr says:

    Your work was very early to set a much higher standards. Thanks for making me a better professional.

    Thanks,

    Damon Carr

  4. kevin fan says:

    Great job! Thanks for sharing it.

  5. martin.grayson says:

    Hi sivtx,

    I would really like to do something with your feedback, however, you haven’t provided any specific or useful information…

    For example, what application didn’t load? How are you trying to use it? Do you have Silverlight 3 installed? What browser / OS are you using? What is a mess?

    If you would like some help, can you please provide some information enabling us to help you?

    Thanks,

    Martin

  6. Vish says:

    Hi,

    I think the range slider would be great for picking date ranges. Is that something that could be added to it in the future?

    Thank You,

    Vish

  7. martin.grayson says:

    Hi Vish,

    The range slider will already support this with a little code. For example, the RangeSlider uses doubles – you could set the minimum to 0, and the maximum to 365, and then use the RangeStart and RangeEnd to determine a span of days in a year – you could even achieve this through Converters.

    I will probably not create a specific DateRangeSlider.

    Thanks,

    Martin

  8. Antonis says:

    Great work Martin, many thanks!

    The slider is something i will definitely use!

    The only piece that’s missing is the Column/Row Span on the DragDockPanels!!

    Thaaaaaaaanks

  9. martin.grayson says:

    Haha, thanks Antonis.

    That one keeps me awake at night!

    Martin

  10. Aaron Forman says:

    Martin,

    Hey thanks so much for the new release. Were you able to address the issues with the previous release as it pretains to the DragDockPanelHost? We talked a while back about them… just wondering if you had a log of issues that were fixed.

    Also dont let comments from sivatx bother you… Works great! There is always one guy in a crowd…

  11. Chris says:

    Hi Martin,

    As usual, thank you "so much" for these terrific samples.  I had a lot of fun with the dragdockpanel and the other controls in your suite.  Believe it or not I was going to be working on a range slider for a project I’m working on.  What great timing :-)  This will be fun.

    It has been awhile since I checked in with the MSCUI Patient Journey Demonstrator.  Do you work on that project?  Do you know if they’ll be releasing source code for that project?  I figured you were connected with the group since the dragdockpanel is similar to what they use.

    Best regards,

    Chris

  12. martin.grayson says:

    Hi Aaron!

    Yep, all of the drag drop issues (particularly in WPF) have been resolved in this release. There are a couple of bugs that have been uncovered this week, and I will post a fix for them (probably and updated 4.1 release) later this week.

    Thanks for sticking by, and all of your feedback and contributions.

    Martin

  13. martin.grayson says:

    Hi Chris,

    The range slider has been on my list for a while, great for charting controls etc. Still has one or 2 minor issues to iron out (e.g. changing min and max at runtime), but as a v1 control, I think its there.

    I still work for the MSCUI project, but have not done any more updates for the Patient Journey Demonstrator. We currently have no plans to release the source code for the demonstrator, however, I am happy to answer questions about the demonstrator UI.

    As you can see from Blacklight, some of the concepts are being completely recreated from the ground up.

    Thanks,

    Martin

  14. Chris says:

    Hi Martin,

    Thanks for your response.  I was just curious.  I remember when I first saw the MSCUI project … it made me realize that UI’s were never going to be the same … thankfully :-) I’ll continue to stay tuned to the progress in the Blacklight gallery.  

    On a side note, I have been working very hard on reproducing, in my SL3 project, the concept of an adorner layer.  The adorner layer, as you know, exists in WPF but not SL3.  I am working on a SL3 designer (drag and drop, resize, move, rotate objects on screen).  I am curious if you know of any open source projects or samples that employ the concept of an adorner layer in SL?

    Thanks again for sharing these controls and helping devs get a jump start on some rather complex design structures.

    Best regards,

    Chris

  15. Jean-Marc says:

    Hi Martin,

    I dont have any questions,

    just few words to tell that your work is really fantastic !

    i really appreciate the "look & design" of your controls, it builds the desire to write some code with them !

    So Thanks for sharing !

    Bests regards.

    Jean-Marc

  16. martin.grayson says:

    Hi Chris,

    Havent seen any open source project that do this – I have made my attempts in the past, but never come up with a really satisfactory way. I think using the popup layer would be the way forward, but I haven’t tried it myself!

    Also, Jean-Marc,

    Thanks for your feedback buddy – i will continue to produce them!

    Martin

  17. Chris says:

    Hi Martin,

    Thanks for your reply.  Yes, the "popup" layer is the approach I’m taking for the "adorner layer" since it seems to be the most popular amongst the samples.  Thanks again for your wonderful controls :-)

    Chris

  18. vinay kapoor says:

    Hi martin

    i see a bug in the Drag Dock Panel in the new version. If you expand and collapse (maximize/minimize) 1 panel and then try to do the same on another, it does not collapse in the first click.

  19. Naresh says:

    Hello Martin,

    That is awesome. I was looking for DragDropPanel, for quite some long time. I used it in WinForm application, it seems preety OK, except that flickering, which is solved by following code(took it from msdn)

    class NoFlickerWindowsFormsHost : WindowsFormsHost

    {

       const uint SWP_NOZORDER = 0x0004;

       const uint SWP_NOACTIVATE = 0x0010;

       const uint SWP_ASYNCWINDOWPOS = 0x4000;

       [DllImport("user32.dll")]

       extern static bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

       protected override void OnWindowPositionChanged(Rect rcBoundingBox)

       {

           if (Handle != IntPtr.Zero)

           {

               SetWindowPos(Handle,

                   IntPtr.Zero,

                   (int)rcBoundingBox.X,

                   (int)rcBoundingBox.Y,

                   (int)rcBoundingBox.Width,

                   (int)rcBoundingBox.Height,

                   SWP_ASYNCWINDOWPOS

                   | SWP_NOZORDER

                   | SWP_NOACTIVATE);

           }

       }

    }

    what do you advise for DragDropPanel in WinForms ?

  20. martin.grayson says:

    Hi VInay,

    thanks for the bug, will be fixed next release.

    Thanks,

    Martin

  21. martin.grayson says:

    Hi Naresh,

    Not tried (or even considered) this scenario. I would say move to WPF – its a beautiful world – however, if that is not possible yet, I can only recomment hitting some WinForms forums, as this is an area I know very little about.

    Sorry!

  22. Justin says:

    Hi Martin,

    Is there a way to change the color of the watermark in the watermarkedtextbox?

    Thanks,

    Justin

  23. Mike Parker says:

    Hi Justin,

    I have posted a response to your question on the codeplex discussions forum after Martin forwarded it to earlier me today.

    http://blacklight.codeplex.com/Thread/View.aspx?ThreadId=74760

    Any questions let us know.

    Regards,

    Mike