我想知道是否可以为DatePicker
的特定日期设置特定颜色,假设我想告诉用户在这些日子里:5, 10, 11, 20, 30
可以查看一些数据。我需要指定一个特定的颜色,例如蓝色,这可能吗?
在文档中没有任何内容。
感谢。
答案 0 :(得分:2)
DatePicker
和Calendar
都对开出日期提供了开箱即用的支持。您可以利用此功能来确定可选择的日期。然后,重新设置日历日按钮以查看您想要的方式。默认情况下,中断日期有一个' X'通过它们,但应用彩色阴影可能更好。
首先,考虑到一些可选择的'日期,计算反向范围。这些日期 不 可选,即限制日期。
public void SetSelectableDates(IEnumerable<DateTime> times)
{
var selectableDates = times.Select(d => d.Date).Distinct().OrderBy(o => o).ToList();
var blackoutRanges = new List<CalendarDateRange>();
_datePicker.BlackoutDates.Clear();
if (selectableDates.Count == 0)
{
_datePicker.BlackoutDates.Add(
new CalendarDateRange(DateTime.MinValue, DateTime.MaxValue));
return;
}
var start = DateTime.MinValue;
foreach (var date in selectableDates)
{
var end = date.AddDays(-1);
if (date != start)
blackoutRanges.Add(new CalendarDateRange(start, end));
start = date.AddDays(1);
}
blackoutRanges.Add(new CalendarDateRange(start, DateTime.MaxValue));
foreach (var range in blackoutRanges)
_datePicker.BlackoutDates.Add(range);
}
接下来,设置应用自定义CalendarStyle
的{{1}}来覆盖弹出窗口中可选择和不可选日期的显示方式:
CalendarDayButtonStyle
通常的样式规则适用:您希望使用适合您应用程序主题(或系统主题)的画笔。
结果: