在不选择日期的情况下从日历控件获取值

本文关键字:日历 控件 获取 情况下 选择 日期 | 更新日期: 2023-09-27 17:54:19

是否有一种方法(使用Visual Studio WPF中的日历控件),我可以获得一个值,而无需在控件中实际选择一天。

例如,我有一个客户端想要日历的DisplayMode = Year。现在我们假设他们选择三月作为对照。这会将DisplayMode更改为Month,并且在控件中选择当月中的某一天之前不会设置任何值。

是否有一种方法可以获得年和月,并将其设置为一个值,而不需要他们实际选择一天?因为在这种情况下,日期并不重要。

我已经找到了一些不涉及使用日历控件或日期picker的解决方案,但我想继续使用这些控件的UI目的

在不选择日期的情况下从日历控件获取值

您需要创建一个DisplayModeChanged事件并相应地更改模式:

private DateTime newdate = DateTime.Now;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
   calctl.SelectedDate = DateTime.Now;
   calctl.DisplayMode = System.Windows.Controls.CalendarMode.Year;
}
private void calctl_DisplayModeChanged(object sender, CalendarModeChangedEventArgs e)
{
        if (calctl.DisplayMode == System.Windows.Controls.CalendarMode.Month)
        {
             newdate = calctl.DisplayDate;
             calctl.DisplayMode = System.Windows.Controls.CalendarMode.Year;
        }
}

这将允许您更改月份和/或年份,而不需要更改日期。您需要将初始显示模式设置为month