如何在WPF中的DatePicker中获取日历

时间:2013-08-06 09:20:20

标签: wpf calendar datepicker components

我需要引用Calendar对象中的DatePicker

我觉得这很容易:

DatePicker datePicker = new DatePicker();
Calendar calendar = datePicker.Calendar;

Calendar中没有DatePicker属性。

有什么办法可以获得这个参考吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

private void Window_ContentRendered(object sender, EventArgs e)
{
    // Find the Popup in template
    Popup MyPopup = FindChild<Popup>(MyDatePicker, "PART_Popup");

    // Get Calendar in child of Popup
    Calendar MyCalendar = (Calendar)MyPopup.Child;

    // For test
    MyCalendar.BlackoutDates.Add(new CalendarDateRange(
            new DateTime(2013, 8, 1),
            new DateTime(2013, 8, 10)
    ));
}

Note: 仅在控件完全加载时才使用FindChild,否则无法找到它并提供 null 。在这种情况下,我将此代码放在ContentRendered的{​​{1}}事件中,该事件表明窗口的所有内容都已成功加载。

Window的列表:

FindChild<>

答案 1 :(得分:0)

试试这段代码:

Popup popup = Template.FindName("PART_Popup", this) as Popup;

_calendar = (Calendar)popup.Child;