在Windows应用中阻止日期

时间:2015-12-06 20:23:51

标签: c# windows xaml datepicker

我在Windows应用程序(平板电脑桌面)中使用DatePicker。我想在datePicker上阻止一些日期,以便用户无法选择它们。我查了一下google,msdn但找不到太多信息。

我得到了使用'DisplayDateStart','DisplaydateEnd'的建议但是当我使用它时我得到错误 - 'DatePicker不包含DisplayDateStart的定义,并且没有扩展方法可以找到接受DatePicker类型的第一个参数的DisplaydateStart'。

请分享您对如何使其发挥作用的想法

XAML:

<StackPanel x:Name="spDatePicker">

</StackPanel>

XAML.cs

        DatePicker datePickerWithBlackoutDates = new DatePicker();            

        datePickerWithBlackoutDates.DisplayDateStart = new DateTime(2009, 8, 1);
        datePickerWithBlackoutDates.DisplayDateEnd = new DateTime(2009, 8, 31);
        datePickerWithBlackoutDates.SelectedDate = new DateTime(2009, 8, 10);

        datePickerWithBlackoutDates.BlackoutDates.Add(
            new CalendarDateRange(new DateTime(2009, 8, 1), new DateTime(2009, 8, 2)));
        datePickerWithBlackoutDates.BlackoutDates.Add(
            new CalendarDateRange(new DateTime(2009, 8, 8), new DateTime(2009, 8, 9)));
        datePickerWithBlackoutDates.BlackoutDates.Add(
            new CalendarDateRange(new DateTime(2009, 8, 15), new DateTime(2009, 8, 16)));
        datePickerWithBlackoutDates.BlackoutDates.Add(
            new CalendarDateRange(new DateTime(2009, 8, 22), new DateTime(2009, 8, 23)));
        datePickerWithBlackoutDates.BlackoutDates.Add(
            new CalendarDateRange(new DateTime(2009, 8, 29), new DateTime(2009, 8, 30)));

        datePickerWithBlackoutDates.DateValidationError +=
            new EventHandler<DatePickerDateValidationErrorEventArgs>(DatePicker_DateValidationError);

        // root is a Panel that is defined elsewhere.
        spDatePicker.Children.Add(datePickerWithBlackoutDates);

非常感谢您的帮助。 谢谢 饶

1 个答案:

答案 0 :(得分:0)

使用日历日期选择器,您正在查看与Windows存储api没有完整功能奇偶校验的wpf控件。 https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.calendardatepicker.mindate.aspx

根据Setting Mindate and MaxDate for Datepicker Control

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