【问题标题】: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