C1Calendar for Winforms 是一款全功能的 Outlook 风格日历,允许最终用户选择的当前日期或通过 C1Schedule 导航来的日期。根据当前所占空间大小,C1Clendar 可以一次性展示一个或者多个月份的日历。

这篇博客将阐述如何定制 C1Calendar 的外观,实现在节假日日期上添加自定义图片。

我们可以通过 C1.Win.C1Schedule.UI.CalendarTheme 来实现该功能,它代表 C1Calendar 控件的主题样式。

以下代码用于添加节日到 C1Calendar 中:

private void Form1_Load(object sender, EventArgs e)

{

// Add Holidays in the C1Calendar object

c1Calendar1.CalendarInfo.Holidays.AddRange(

new DateTime[] {new DateTime(2012,01,26),

new DateTime(2013,03,08),

new DateTime(2013,04,06),

new DateTime(2013,08,15),

new DateTime(2013,08,20),

new DateTime(2013,10,24),

new DateTime(2012,11,13),

new DateTime(2012,11,15),

new DateTime(2012,11,28),

new DateTime(2012,12,25)});

}

以下代码用于添加图片到以上节日中:

private void c1Calendar1_Paint(object sender, PaintEventArgs e)

{

    CalendarTheme t = c1Calendar1.Theme;

    // Assign the Holidays Collection to the Bolded Dates array in the Calendar

    c1Calendar1.BoldedDates =     c1Calendar1.CalendarInfo.Holidays.ToArray<DateTime>();

    // Add Background Image to the Bolded Dates Theme in the Calendar Themes

    t[7].BackImage = new Bitmap("../../Resources/Flag_of_India.svg.png");

}

效果图:

 

 

Download Sample CS

Download Sample VB