为 Datepicker 控件设置 Mindate 和 MaxDate

Setting Mindate and MaxDate for Datepicker Control

我目前正在使用 DatePicker 的控件,我试图在其中限制日期以显示 MinDate 和 Maxdate。不幸的是,我找不到任何相关的方法来设置 Min 和 Max days/Month 除了 Year,我什至尝试扩展 Controls class 以设置 Date 在 DatePicker 加载期间显示。是否可以限制用户可以从 UWP 应用程序的日期选择器 select 中选择哪些日期?

谢谢!

我假设您正在 Windows 10 通用 Windows 平台上进行开发。 UWP中的DatePicker,只能设置MinYear和MaxYear。您可以使用 4 个日期时间控件(参考此 link

我建议您使用新的 Calendar Date Picker,它允许您设置 MinDate 和 MaxDate

CalendarDatePicker cdp=new CalendarDatePicker();
cdp.MinYear=DateTime.Now();
cdp.MaxYear=DateTime.AddYears(3);

WPF DatePicker 具有 DisplayDateStartDislayDateEnd 属性;参见 https://msdn.microsoft.com/en-us/library/system.windows.controls.datepicker.displaydatestart(v=vs.110).aspx

如果您使用 DatePicker 控件 (.net Framework >= 4.0),您也可以直接在 XAML 代码中绑定它,如下所示:


 <DatePicker
            x:Name="datePickr"
            MinWidth="150"
            Margin="10"
            DisplayDateEnd="{Binding Mode=OneWay, Source={x:Static
            System:DateTime.Today}}"/>

如果您使用 Xceed Extended WPF 工具包中的 DateTimePicker 控件,您可以使用与 DisplayDateEnd 相同的方式绑定 Maximum 属性。

p.s。不要忘记将以下内容添加到您的 XAML 文件 header:

xmlns:System="clr-namespace:System;assembly=mscorlib"