在不选择日期的情况下从日历控件获取值
Obtaining value from Calendar control without selecting a day
有没有办法(在 Visual Studio WPF 中使用日历控件)我可以获得一个值,而无需在控件中实际 select 一天。
例如,我有一个客户想要日历的 DisplayMode = Year。
现在假设他们 select 三月份在控制范围内。这会将 DisplayMode 更改为 Month,并且永远不会设置任何值,直到他们 select 在该月的某一天在控件中。
有没有一种方法可以获得年份和月份并将其设置为一个值,而不需要它们实际 select 一天?因为在这种情况下,日期并不重要。
我发现了一些不涉及使用日历控件或 DatePicker 的变通方法,但我想继续使用这些控件以达到 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;
}
}
这将允许您更改月份 and/or 年,而不用担心日期。 您需要将初始显示模式设置为月份。
有没有办法(在 Visual Studio WPF 中使用日历控件)我可以获得一个值,而无需在控件中实际 select 一天。
例如,我有一个客户想要日历的 DisplayMode = Year。 现在假设他们 select 三月份在控制范围内。这会将 DisplayMode 更改为 Month,并且永远不会设置任何值,直到他们 select 在该月的某一天在控件中。
有没有一种方法可以获得年份和月份并将其设置为一个值,而不需要它们实际 select 一天?因为在这种情况下,日期并不重要。
我发现了一些不涉及使用日历控件或 DatePicker 的变通方法,但我想继续使用这些控件以达到 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;
}
}
这将允许您更改月份 and/or 年,而不用担心日期。 您需要将初始显示模式设置为月份。