[英]Can the calender of a Silverlight DatePicker control be prevented from closing on date selection?
在日历中选择日期时(通过单击CalendarDayButton),日历弹出窗口将自动关闭。 是否可以在不编辑控件本身的源代码的情况下防止此行为? (一个ControlTemplate会很好)。
我可以更改CalendarDayButton样式和控件模板,但在此看不到任何帮助。
我不相信您会改变这种行为。 导致Datepicker关闭的代码似乎在这里(我从Silverlight Toolkit ,Release-> Silverlight 4-> Source-> Controls-> DatePicker看了Datepicker的源代码)
private void Calendar_DayButtonMouseUp(object sender, MouseButtonEventArgs e)
{
this.Focus();
this.IsDropDownOpen = false;
_calendar.ReleaseMouseCapture();
}
它也在这里关闭:
private void Calendar_KeyDown(object sender, KeyEventArgs e)
{
Calendar c = sender as Calendar;
Debug.Assert(c != null, "The Calendar should not be null!");
if (!e.Handled && (e.Key == Key.Enter || e.Key == Key.Space || e.Key == Key.Escape) && c.DisplayMode == CalendarMode.Month)
{
this.Focus();
this.IsDropDownOpen = false;
if (e.Key == Key.Escape)
{
this.SelectedDate = this._onOpenSelectedDate;
}
}
}
这两个处理程序都添加在私有方法private void InitializeCalendar
,并且日历对象本身被声明为私有( private Calendar _calendar
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.