【问题标题】:Silverlight DatePicker YearMonth and Year onlySilverlight DatePicker 仅限年月和年
【发布时间】:2014-04-25 15:43:10
【问题描述】:

我需要一个 Silverlight DatePicker 控件,它允许用户仅选择年份或选择 YearMonth。允许我在 xaml 中设置这种类型的功能,如下所示:

<sdk:DatePicker my:DatePickerCalendar.IsYear="True" my:DatePickerFormat="yyyy"/>

<sdk:DatePicker my:DatePickerCalendar.IsMonthYear="True" my:DatePickerFormat="MM/yyyy"/>

【问题讨论】:

  • 请解释问题所在。你试过什么?

标签: c# silverlight datepicker silverlight-toolkit


【解决方案1】:

我发现的最简单的解决方案是结合

DateTimePicker start on year

private void dp_CalendarOpened(object sender, RoutedEventArgs e)
    {
        DatePicker dp = (DatePicker)sender;
        Popup popup = (Popup)dp.Template.FindName("PART_Popup", dp);
        Calendar cal = (Calendar)popup.Child;

        cal.DisplayMode = CalendarMode.Year;
        cal.DisplayModeChanged += cal_DisplayModeChanged;
    }

private void cal_DisplayModeChanged(object sender, CalendarModeChangedEventArgs e)
    {
        Calendar calendar = (Calendar)sender;
        Popup popup = (Popup)calendar.Parent;

        if (e.NewMode == CalendarMode.Month)
        {
            //calendar.DisplayMode = e.OldMode;
            calendar.SelectedDate = calendar.DisplayDate.AddDays((calendar.DisplayDate.Day * -1) + 1).AddMonths(1).AddDays(-1);
            popup.IsOpen = false;

            calendar.DisplayModeChanged -= cal_DisplayModeChanged;
        }
    }

【讨论】:

    【解决方案2】:

    您可以尝试此修改版的 silverlight 日期选择器控件以仅显示月份或年份

    <sdk:DatePicker Name="datepicker1"
                    Height="23"
                    Width="150"
                    SelectedDateFormat="MonthYear"
                    CalendarMode="Year" />
    

    DatePicker Month or year

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      相关资源
      最近更新 更多