We are nearly finished with work on a new MonthCalendar control, which will be included with Editors for WPF. This version offers several features not found in the existing MonthCalendar found in the Shared Library, such as multiple selection and the ability to zoom out/in to navigate to different months, years, or decades.
Selection
By default only a single date can be selected, but there are several selection modes that allow multiple dates to be selected. The number of selected dates can be restricted, or can be restricted to a contiguous range. By handling the SelectionChanging event, the selection can easily be customized or canceled before the changes are committed. This allows for any custom selection logic to be implemented. Additionally, the week numbers and/or day of week headers can be clicked to select the associated days of the visible month.
|

The MonthCalendar using Extended selction after holding down the Control key and clicking Thusday and Week 16.
|
The SelectedDates property is actually a collection of DateRange objects, which are used to aggregate and optimize the selected dates. Regardless, you can still iterate over the individual dates as needed.
Navigation
Like the WinForms MonthCalendar, you can navigation to other dates by zooming out and/or in, with animations to that effect. Clicking the title text will zoom out, such as zooming from the month view (seen above) to the year view (seen below). The year view can be used to quickly navigation to a month in the given year, and likewise for the associated decade and century. Clicking on a month in the year view will zoom in and presented the specified item in a month view.
|

The MonthCalendar displaying a year view.
|
Disabled Dates
Certain dates or date ranges can be explicitly disabled, which prevents them from being selectable, using the DisabledDates collection. Also, you can easily disable any day of the week, such as preventing any Thursday from being selected. Any dates that are disabled, are automatically excluded from SelectedDates.
Summary
We will also be including the various themes for the MonthCalendar, as well as providing several customizations options for the look/feel of the control. The MonthCalendar will easily integrate into the DateTimeEditBox, making date entry a snap.