我想修改标准 WPF DatePicker 以允许选择一周。如果我返回单个 DateTime 作为 SelectedDate 很好,但是当鼠标悬停时我需要 UI 来选择整个星期行。
我继承并附加到 SelectedDateChanged 以便它将 StartDayOfWeek 作为 SelectedDate 返回(下面的代码)。
我对如何突出显示整个星期有一个想法(使用鼠标事件)。我希望有一个更简单的方法。
// force selection to be for first previous start DOW
this.SelectedDateChanged += (sender, args) => {
var newDate = (DateTime) args.AddedItems[0];
while (newDate.DayOfWeek != FirstDayOfWeek)
newDate = newDate.AddDays(-1);
SelectedDate = newDate;
};
编辑
我添加了我当前的解决方案作为答案。仍在寻找一种突出范围的好方法,而不是我目前的做法。