Setting Mindate and MaxDate for Datepicker Control

2020-04-11 18:19发布

问题:

I'm currently using DatePicker’s control, where I tried to limit the dates to show MinDate & Maxdate. Unfortunately I couldn't find any related method to set the Min and Max days/Month except for Year, I even tried to extends the Controls class to set the Date to be display during it the DatePicker loaded. Is it possible to limit which dates a user can select from a datepicker on a UWP application?

Thanks!

回答1:

I assume you're developing on Windows 10 Universal Windows Platform. DatePicker in UWP, you can only set the MinYear and MaxYear. There's 4 datetime control that you can use (Refer to this link)

I would suggest you to use the new Calendar Date Picker which allows you to set MinDate and MaxDate

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


回答2:

If you use DatePicker control (.net Framework >= 4.0) you can bind it also directly in the XAML code like this :


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

and if you use DateTimePicker control from Xceed Extended WPF toolkit you can bind Maximum Property the same way as DisplayDateEnd for DatePicker.

p.s. Don't forget to add folowing to your XAML file header:

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


回答3:

WPF DatePicker has the DisplayDateStart and DislayDateEnd properties; see https://msdn.microsoft.com/en-us/library/system.windows.controls.datepicker.displaydatestart(v=vs.110).aspx.