繁体   English   中英

是否可以防止Silverlight DatePicker控件的日历在选择日期时关闭?

[英]Can the calender of a Silverlight DatePicker control be prevented from closing on date selection?

DatePicker MSDN

在日历中选择日期时(通过单击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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM