像这样的东西 但这里是一个例外。我可以使用结束标记将日期设置为昨天,如下所示,以便我的datepicker控件将日期直到昨天为止
<DatePicker BorderBrush="LightBlue" BorderThickness="1"
Name="dtTierValidTo" IsEnabled="{Binding CanEdit}"
DisplayDateStart="{Binding TierDealValidFromDate, Mode=OneWay}"
SelectedDate="{x:Static sys:DateTime.Now}"
DisplayDate="{x:Static sys:DateTime.Now}"
Width="120" HorizontalAlignment="Left">
<DatePicker.BlackoutDates>
<CalendarDateRange Start="1/1/1500" End="7/22/2017"/>
</DatePicker.BlackoutDates>
</DatePicker>
我希望calendarDateRange中的结束标记结束于昨天,如果我给出如下所示
<CalendarDateRange Start="1/1/1500" End="{x:Static sys:DateTime.Now}"/>
它显示错误,因此我的要求是结束标记应该在昨天的日期。
我想要过去所有过去的日期。这意味着用户应该只能选择今天和未来的日期。请帮忙 please click the link to see the image
如果我通过如下结束日期,它会给出正确的输出。但我想要 作为昨天的结束日期而不是我手动输入日期
<DatePicker.BlackoutDates>
<CalendarDateRange Start="1/1/1500" End="7/22/2017"/>
</DatePicker.BlackoutDates>
答案 0 :(得分:1)
以下事件对我有用。 在xaml -
<Calendar Name="calendar1" Loaded="calendar1_Loaded"/>
在xaml.cs页面
private void calendar1_Loaded(object sender, RoutedEventArgs e) {
DatePicker cal = sender as DatePicker;
cal.BlackoutDates.AddDatesInPast();
}
答案 1 :(得分:0)
dtTierValidTo.DisplayDateStart = System.DateTime.Today.Date.AddDays(-1); dtTierValidTo.DisplayDateEnd = new DateTime(年,月,日);
答案 2 :(得分:0)
从msdn开始,您可以通过以下方式添加代码隐藏范围:
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(2009, 1, 2), new DateTime(2009, 1, 4)));
所以没有什么可以阻止你这样做:
calendarWithBlackoutDates.BlackoutDates.Add(
new CalendarDateRange(new DateTime(1500, 1, 1), DateTime.Today.AddDays(-1));
您也可能对使用DisplayDateStart
和/或DisplayDateEnd
属性Calendar
(和DatePicker
)的Limiting the Range of Selectable Dates in a Calendar感兴趣。
Here您可以找到与tomorrow
而不是yesterday
有同样问题的人,也许它可以提供帮助!