【问题标题】:How to black out specific days of the week (datepicker) [VB]如何涂黑一周中的特定日子(日期选择器)[VB]
【发布时间】:2014-08-04 12:19:53
【问题描述】:
【问题讨论】:
标签:
wpf
vb.net
datepicker
【解决方案1】:
我修改了其中一个示例并想出了这个。
它对我有用。
private void MyDatePicker_CalendarOpened(object sender, RoutedEventArgs e)
{
MyDatePicker.DisplayDateStart = DateTime.Now;
MyDatePicker.DisplayDateEnd = DateTime.Now + TimeSpan.FromDays(1000);
var minDate = MyDatePicker.DisplayDateStart ?? DateTime.MinValue;
var maxDate = MyDatePicker.DisplayDateEnd ?? DateTime.MaxValue;
for (var d = minDate; d <= maxDate && DateTime.MaxValue > d; d = d.AddDays(1))
{
if (d.DayOfWeek == DayOfWeek.Monday || d.DayOfWeek == DayOfWeek.Tuesday)
{
MyDatePicker.BlackoutDates.Add(new CalendarDateRange(d));
}
}
}
还有一个奖励:Prevent Certain Dates from Being Selected。
【解决方案2】:
感谢 Okuma Scott,这是一些有用的反馈!我根据我的具体需求将您的代码重写为 VB 语言。
包含的代码将检查明年的所有日子,并将所有星期一和星期二涂黑。
Private Sub Datepicker_CalendarOpened(sender As Object, e As RoutedEventArgs) Handles Datepicker.CalendarOpened
Dim currDate As Date = DateTime.Now
Dim maxDate As Date = DateTime.Now.AddDays(356)
While (currDate < maxDate)
If currDate.DayOfWeek = DayOfWeek.Monday Or currDate.DayOfWeek = DayOfWeek.Tuesday Then
DatumSelectie.BlackoutDates.Add(New CalendarDateRange(currDate))
End If
currDate = currDate.AddDays(1)
End While
End Sub