日历

借助日历,用户能够通过使用可视日历显示来选择日期。

Calendar 控件可以单独使用,也可以用作 DatePicker 控件的下拉部分。 有关详细信息,请参阅 DatePicker

下图显示了两个 Calendar 控件,一个带有选择和中断日期,一个没有。

Calendar controls
日历控件

下表提供了有关通常与 Calendar 关联的任务的信息。

任务 实现
指定无法选择的日期。 使用 BlackoutDates 属性。
Calendar 显示一个月、一整年或十年。 DisplayMode 属性设置为月、年或十年。
指定用户是否可以选择日期、日期范围或多个日期范围。 使用 SelectionMode
指定 Calendar 显示的日期范围。 使用 DisplayDateStartDisplayDateEnd 属性。
指定是否突出显示当前日期。 使用 IsTodayHighlighted 属性。 默认情况下,IsTodayHighlightedtrue
更改 Calendar 的大小。 使用 Viewbox 或将 LayoutTransform 属性设置为 ScaleTransform。 请注意,如果设置 CalendarWidthHeight 属性,实际日历不会更改其大小。

Calendar 控件提供了使用鼠标或键盘的基本导航。 下表概述了键盘导航。

键组合 DisplayMode 操作
箭头 Month 如果 SelectionMode 属性未设置为 None,则更改 SelectedDate 属性。
箭头 Year 更改 DisplayDate 属性的月份。 请注意,SelectedDate 不会更改。
箭头 Decade 更改 DisplayDate 的年份。 请注意,SelectedDate 不会更改。
Shift+箭头 Month 如果 SelectionMode 未设置为 SingleDateNone,则扩展所选日期的范围。
Home Month SelectedDate 更改为当月的第一天。
Home Year DisplayDate 的月份更改为一年中的第一个月。 SelectedDate 不会更改。
Home Decade DisplayDate 的年份更改为十年中的第一年。 SelectedDate 不会更改。
End Month SelectedDate 更改为当月的最后一天。
End Year DisplayDate 的月份更改为一年中的最后一个月。 SelectedDate 不会更改。
End Decade DisplayDate 的年份更改为十年中的最后一年。 SelectedDate 不会更改。
CTRL + 向上箭头 任意 切换到下一个更大的 DisplayMode。 如果 DisplayMode 已为 Decade,则不执行任何操作。
CTRL + 向下箭头 任意 切换到下一个更小的 DisplayMode。 如果 DisplayMode 已为 Month,则不执行任何操作。
空格键或 Enter YearDecade DisplayMode 切换到焦点项所表示的 MonthYear

另请参阅