Calendar.BlackoutDates Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets a collection of dates that are marked as not selectable.
public:
property System::Windows::Controls::CalendarBlackoutDatesCollection ^ BlackoutDates { System::Windows::Controls::CalendarBlackoutDatesCollection ^ get(); };
public System.Windows.Controls.CalendarBlackoutDatesCollection BlackoutDates { get; }
member this.BlackoutDates : System.Windows.Controls.CalendarBlackoutDatesCollection
Public ReadOnly Property BlackoutDates As CalendarBlackoutDatesCollection
Property Value
A collection of dates that cannot be selected. The default value is an empty collection.
Examples
The following example creates a Calendar that has some dates that cannot be selected.
// Create a Calendar that displays dates through
// Januarary 31, 2009 and has dates that are not selectable.
Calendar calendarWithBlackoutDates = new Calendar();
calendarWithBlackoutDates.IsTodayHighlighted = false;
calendarWithBlackoutDates.DisplayDate = new DateTime(2009, 1, 1);
calendarWithBlackoutDates.DisplayDateEnd = new DateTime(2009, 1, 31);
calendarWithBlackoutDates.SelectionMode = CalendarSelectionMode.MultipleRange;
// Add the dates that are not selectable.
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 2), new DateTime(2009, 1, 4)));
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 9)));
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 16)));
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 23), new DateTime(2009, 1, 25)));
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 30)));
// Add the selected dates.
calendarWithBlackoutDates.SelectedDates.Add(
new DateTime(2009, 1, 5));
calendarWithBlackoutDates.SelectedDates.AddRange(
new DateTime(2009, 1, 12), new DateTime(2009, 1, 15));
calendarWithBlackoutDates.SelectedDates.Add(
new DateTime(2009, 1, 27));
// root is a Panel that is defined elswhere.
root.Children.Add(calendarWithBlackoutDates);
' Create a Calendar that displays dates through
' Januarary 31, 2009 and has dates that are not selectable.
Dim calendarWithBlackoutDates As New Calendar()
calendarWithBlackoutDates.IsTodayHighlighted = False
calendarWithBlackoutDates.DisplayDate = New DateTime(2009, 1, 1)
calendarWithBlackoutDates.DisplayDateEnd = New DateTime(2009, 1, 31)
calendarWithBlackoutDates.SelectionMode = CalendarSelectionMode.MultipleRange
' Add the dates that are not selectable.
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 2), New DateTime(2009, 1, 4)))
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 9)))
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 16)))
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 23), New DateTime(2009, 1, 25)))
calendarWithBlackoutDates.BlackoutDates.Add(New CalendarDateRange(New DateTime(2009, 1, 30)))
' Add the selected dates.
calendarWithBlackoutDates.SelectedDates.Add(New DateTime(2009, 1, 5))
calendarWithBlackoutDates.SelectedDates.AddRange(New DateTime(2009, 1, 12), New DateTime(2009, 1, 15))
calendarWithBlackoutDates.SelectedDates.Add(New DateTime(2009, 1, 27))
' root is a Panel that is defined elswhere.
root.Children.Add(calendarWithBlackoutDates)
<!-- Create a Calendar that displays dates through
Januarary 31, 2009 and has dates that are not selectable. -->
<Calendar Margin="20" SelectionMode="MultipleRange"
IsTodayHighlighted="false"
DisplayDate="1/1/2009"
DisplayDateEnd="1/31/2009"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Calendar.BlackoutDates>
<CalendarDateRange Start="1/2/2009" End="1/4/2009"/>
<CalendarDateRange Start="1/9/2009" End="1/9/2009"/>
<CalendarDateRange Start="1/16/2009" End="1/16/2009"/>
<CalendarDateRange Start="1/23/2009" End="1/25/2009"/>
<CalendarDateRange Start="1/30/2009" End="1/30/2009"/>
</Calendar.BlackoutDates>
<Calendar.SelectedDates>
<sys:DateTime>1/5/2009</sys:DateTime>
<sys:DateTime>1/12/2009</sys:DateTime>
<sys:DateTime>1/14/2009</sys:DateTime>
<sys:DateTime>1/13/2009</sys:DateTime>
<sys:DateTime>1/15/2009</sys:DateTime>
<sys:DateTime>1/27/2009</sys:DateTime>
<sys:DateTime>4/2/2009</sys:DateTime>
</Calendar.SelectedDates>
</Calendar>
The preceding example produces output that is similar to the following illustration.
Calendar with dates that cannot be selected
Remarks
Dates in this collection will appear gray and crossed out on the calendar.
To make all past dates not selectable, you can use the AddDatesInPast method provided by the collection returned by this property.
XAML Property Element Usage
<object>
<object.BlackoutDates>
oneOrMoreCalendarDateRanges
</object.BlackoutDates>
</object>
XAML Values
oneOrMoreCalendarDateRanges One or more object elements of type CalendarDateRange.