XAML - Calendar
Calendar 表示一个控件,使用户能够使用可视日历显示选择日期。它使用鼠标或键盘提供一些基本的导航功能。日历类的层次继承如下 −
属性
Sr.No. | 属性 &描述 |
---|---|
1 | BlackoutDates 获取标记为不可选择的日期集合。 |
2 | CalendarButtonStyle 获取或设置与控件内部 CalendarButton 对象关联的 Style。 |
3 | CalendarDayButtonStyle 获取或设置与控件内部 CalendarDayButton 对象关联的 Style。 |
4 | CalendarItemStyle 获取或设置与控件的内部 CalendarItem 对象关联的 Style。 |
5 | DisplayDate 获取或设置要显示的日期。 |
6 | DisplayDateEnd 获取或设置日历中可用的日期范围内的最后一个日期。 |
7 | DisplayDateStart 获取或设置日历中可用的第一个日期日历。 |
8 | DisplayMode 获取或设置一个值,该值指示日历是否显示月份、年份或十年。 |
9 | FirstDayOfWeek 获取或设置被视为一周开始的一天。 |
10 | IsTodayHighlighted 获取或设置一个值,该值指示当前日期是否突出显示。 |
11 | SelectedDate 获取或设置当前选定的日期。 |
12 | SelectedDates 获取选定日期的集合。 |
13 | SelectionMode 获取或设置一个值,该值指示允许哪种选择。 |
方法
Sr.No. | 方法和说明 |
---|---|
1 | OnApplyTemplate 应用新模板时为 Calendar 控件构建可视化树。 (覆盖 FrameworkElement.OnApplyTemplate()) |
2 | ToString 提供所选日期的文本表示。 (覆盖 Control.ToString()) |
事件
Sr.No. | 事件 &描述 |
---|---|
1 | DisplayDateChanged 当 DisplayDate 属性发生更改时发生。 |
2 | DisplayModeChanged 当 DisplayMode 属性发生更改时发生。 |
3 | SelectedDatesChanged 当 SelectedDates 属性返回的集合发生更改时发生。 |
4 | SelectionModeChanged 发生当 SelectionMode 发生变化时。 |
示例
以下示例包含一个带有选择和停电日期的日历控件。当您单击停电日期以外的任何日期时,程序将使用该日期更新标题。
以下是使用一些属性和单击事件创建日历的 XAML 代码。
<Window x:Class = "XAMLCalendar.MainWindow" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" Title = "MainWindow" Height = "350" Width = "604"> <Grid> <StackPanel Orientation = "Horizontal"> <!-- Create a Calendar that displays dates through Januarary 31, 2015 and has dates that are not selectable. --> <Calendar Margin = "20" SelectionMode = "MultipleRange" IsTodayHighlighted = "false" DisplayDate = "1/1/2015" DisplayDateEnd = "1/31/2015" SelectedDatesChanged = "Calendar_SelectedDatesChanged" xmlns:sys = "clr-namespace:System;assembly = mscorlib"> <Calendar.BlackoutDates> <CalendarDateRange Start = "1/2/2015" End = "1/4/2015"/> <CalendarDateRange Start = "1/9/2015" End = "1/9/2015"/> <CalendarDateRange Start = "1/16/2015" End = "1/16/2015"/> <CalendarDateRange Start = "1/23/2015" End = "1/25/2015"/> <CalendarDateRange Start = "1/30/2015" End = "1/30/2015"/> </Calendar.BlackoutDates> <Calendar.SelectedDates> <sys:DateTime>1/5/2015</sys:DateTime> <sys:DateTime>1/12/2015</sys:DateTime> <sys:DateTime>1/14/2015</sys:DateTime> <sys:DateTime>1/13/2015</sys:DateTime> <sys:DateTime>1/15/2015</sys:DateTime> <sys:DateTime>1/27/2015</sys:DateTime> <sys:DateTime>4/2/2015</sys:DateTime> </Calendar.SelectedDates> </Calendar> </StackPanel> </Grid> </Window>
以下是 C# 中的选择事件实现。
using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace XAMLCalendar { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Calendar_SelectedDatesChanged(object sender, SelectionChangedEventArgs e) { var calendar = sender as Calendar; // ... See if a date is selected. if (calendar.SelectedDate.HasValue) { // ... Display SelectedDate in Title. DateTime date = calendar.SelectedDate.Value; this.Title = date.ToShortDateString(); } } } }
当您编译并执行上述代码时,将显示以下屏幕−
我们建议您执行上面的示例代码并尝试一些其他属性和事件。