/// <summary> /// Paints the specified day on the calendar /// </summary> /// <param name="e">Paint info</param> public override void OnDrawDay(CalendarRendererDayEventArgs e) { Rectangle r = e.Day.Bounds; if (e.Day.Selected) { using (Brush b = new SolidBrush(ColorTable.DayBackgroundSelected)) { e.Graphics.FillRectangle(b, r); } } else if (e.Day.Date.Month % 2 == 0) { using (Brush b = new SolidBrush(ColorTable.DayBackgroundEven)) { e.Graphics.FillRectangle(b, r); } } else { using (Brush b = new SolidBrush(ColorTable.DayBackgroundOdd)) { e.Graphics.FillRectangle(b, r); } } base.OnDrawDay(e); }
/// <summary> /// Paints the border of the specified day /// </summary> /// <param name="e"></param> public override void OnDrawDayBorder(CalendarRendererDayEventArgs e) { base.OnDrawDayBorder(e); Rectangle r = e.Day.Bounds; bool today = e.Day.Date.Date.Equals(DateTime.Today.Date); using (Pen p = new Pen(today ? ColorTable.TodayBorder : ColorTable.DayBorder, today ? 2 : 1)) { if (e.Calendar.DaysMode == CalendarDaysMode.Short) { e.Graphics.DrawLine(p, r.Right, r.Top, r.Right, r.Bottom); e.Graphics.DrawLine(p, r.Left, r.Bottom, r.Right, r.Bottom); if (e.Day.Date.DayOfWeek == DayOfWeek.Sunday || today) { e.Graphics.DrawLine(p, r.Left, r.Top, r.Left, r.Bottom); } } else { e.Graphics.DrawRectangle(p, r); } } }
/// <summary> /// Paints the background of the specified day's header /// </summary> /// <param name="e"></param> public override void OnDrawDayHeaderBackground(CalendarRendererDayEventArgs e) { bool today = e.Day.Date.Date.Equals(DateTime.Today.Date); using (Brush b = new SolidBrush(today ? ColorTable.TodayTopBackground : ColorTable.DayHeaderBackground)) { e.Graphics.FillRectangle(b, e.Day.HeaderBounds); } base.OnDrawDayHeaderBackground(e); }
/// <summary> /// Draws the all day items area /// </summary> /// <param name="e">Paint Info</param> public override void OnDrawDayTop(CalendarRendererDayEventArgs e) { bool s = e.Day.DayTop.Selected; using (Brush b = new SolidBrush(s ? ColorTable.DayTopSelectedBackground : ColorTable.DayTopBackground)) { e.Graphics.FillRectangle(b, e.Day.DayTop.Bounds); } using (Pen p = new Pen(s ? ColorTable.DayTopSelectedBorder : ColorTable.DayTopBorder)) { e.Graphics.DrawRectangle(p, e.Day.DayTop.Bounds); } base.OnDrawDayTop(e); }
/// <summary> /// Draws the overflow to end of specified day /// </summary> /// <param name="e"></param> public override void OnDrawDayOverflowEnd(CalendarRendererDayEventArgs e) { using (GraphicsPath path = new GraphicsPath()) { int top = e.Day.OverflowEndBounds.Top + e.Day.OverflowEndBounds.Height / 2; path.AddPolygon(new Point[] { new Point(e.Day.OverflowEndBounds.Left, top), new Point(e.Day.OverflowEndBounds.Right, top), new Point(e.Day.OverflowEndBounds.Left + e.Day.OverflowEndBounds.Width / 2, e.Day.OverflowEndBounds.Bottom), }); using (Brush b = new SolidBrush(e.Day.OverflowEndSelected ? ColorTable.DayOverflowSelectedBackground : ColorTable.DayOverflowBackground)) { e.Graphics.FillPath(b, path); } using (Pen p = new Pen(ColorTable.DayOverflowBorder)) { e.Graphics.DrawPath(p, path); } } }
/// <summary> /// Raises the <see cref="E:DrawDayHeaderBackground"/> event. /// </summary> /// <param name="e">The <see cref="WindowsFormsCalendar.CalendarRendererDayEventArgs"/> instance containing the event data.</param> public override void OnDrawDayHeaderBackground(CalendarRendererDayEventArgs e) { Rectangle r = e.Day.HeaderBounds; if (e.Day.Date == DateTime.Today) { GlossyRect(e.Graphics, e.Day.HeaderBounds, TodayA, TodayB, TodayC, TodayD); } else { GlossyRect(e.Graphics, e.Day.HeaderBounds, HeaderA, HeaderB, HeaderC, HeaderD); } if (e.Calendar.DaysMode == CalendarDaysMode.Short) { using (Pen p = new Pen(ColorTable.DayBorder)) { e.Graphics.DrawLine(p, r.Left, r.Top, r.Right, r.Top); e.Graphics.DrawLine(p, r.Left, r.Bottom, r.Right, r.Bottom); } } }