【发布时间】:2010-08-25 01:08:25
【问题描述】:
我正在创建一个窗口,该窗口使用 WPF 日历来浏览在所示月份的指定日期创建的文档。当日历更改月份时,我会在数据库中搜索该月创建的所有文档,并使用它来创建该月中有文档的日期列表。
在日历控件中,我想用粗体显示那些有文档的日期,就像 Outlook 用粗体显示有约会的日期一样。
所以,这是我的问题:如何在日历控件的月视图中将特定日期加粗?感谢您的帮助。
【问题讨论】:
标签: wpf wpf-controls calendar
我正在创建一个窗口,该窗口使用 WPF 日历来浏览在所示月份的指定日期创建的文档。当日历更改月份时,我会在数据库中搜索该月创建的所有文档,并使用它来创建该月中有文档的日期列表。
在日历控件中,我想用粗体显示那些有文档的日期,就像 Outlook 用粗体显示有约会的日期一样。
所以,这是我的问题:如何在日历控件的月视图中将特定日期加粗?感谢您的帮助。
【问题讨论】:
标签: wpf wpf-controls calendar
这可能会有所帮助。 http://www.c-sharpcorner.com/UploadFile/mahesh/539/Default.aspx “选定日期和选定日期”区域将向您展示如何选择它们,并且进一步向下它可以向您展示如何格式化您的日历。也就是说,如果您使用的日历与我希望的相同。希望这会有所帮助。
选定日期和选定日期
SelectedDate 属性表示当前选定的日期。如果多个日期选择为真,则 SelectedDates 属性表示日历中的所有选定日期。以下代码 sn-p 在设计时设置 XAML 中的 SelectedDates。
<Calendar Name="MonthlyCalendar"
SelectionMode="MultipleRange"
DisplayDate="3/5/2010"
DisplayDateStart="3/1/2010"
DisplayDateEnd="3/31/2010"
FirstDayOfWeek="Tuesday"
IsTodayHighlighted="True"
xmlns:sys="clr-namespace:System;assembly=mscorlib" Margin="15,39,88,19">
<Calendar.SelectedDates>
<sys:DateTime>3/5/2010</sys:DateTime>
<sys:DateTime>3/15/2010</sys:DateTime>
<sys:DateTime>3/25/2010</sys:DateTime>
</Calendar.SelectedDates>
</Calendar>
日历中的选定日期如图 8 所示,您可以在其中看到 3 月 5 日、15 日和 25 日具有浅蓝色背景,代表选定的日期。
以下代码 sn-p 在运行时设置 WPF 中的 SelectedDates 属性。
private void AddSelectedDates()
{
MonthlyCalendar.SelectedDates.Add(new DateTime(2010, 3, 5));
MonthlyCalendar.SelectedDates.Add(new DateTime(2010, 3, 15));
MonthlyCalendar.SelectedDates.Add(new DateTime(2010, 3, 25));
}
【讨论】:
事实证明,粗体显示在几个地方是硬编码的,所以我改为日期突出显示。我写了一个自定义控件,它有一个 HighlightedDates 列表;将日期添加到列表中会突出显示日期,并为日期提供可选的工具提示以及主机应用选择的任何内容。
我写了一篇题为 Extending the WPF Calendar 的 CodeProject 文章。文章包含该控件并解释了我是如何构建它的。
【讨论】: