The Silverlight Toolkit now includes several new features including:
The BusyIndicator control is a wrapper control (think of a Border) where you put all of your content inside of the BusyIndicator control. BusyIndicator exposes an IsBusy property which should be set to true (possibly via data binding) whenever the relevant portion of the application is busy and won't respond to user input. When this happens, BusyIndicator automatically disables its content and shows a simple UI to let the user know what's going on.
The BusyContent property displays a message to the user in the BusyIndicator. You can hard code this message to something like “Please wait …” or you can use data binding to set the message. The BusyContent is of type object, so you could display any custom content or user control, not just a string.
You can also use a BusyContentTemplate and possibly replace the default ProgressBar. The example below defines a template that updates its ProgressBar and status message using bindings. Note that it also makes the default ProgressBar collapsed.
The ContextMenu class is an ideal control to use in combination with the Right Mouse Click support. The ContextMenu contains a set of MenuItem which can contain text and icons, if desired. The example below shows a ContextMenu using both a text header and an image as the icon content. It supports single level of nesting , therefore there is no support for sub items. The ContextMenu is a subclass of the ItemsControl so it does support ItemTemplate which means the items can be customized.