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 (SolidBrush brs = new SolidBrush(Color.Black)) { using (Pen p = new Pen(brs)) //(ColorTable.DayOverflowBorder)) { e.Graphics.DrawPath(p, path); } } } }
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 { if (r.Height > 0 && r.Width > 0) { e.Graphics.DrawRectangle(p, r); } } } }
public override void OnDrawDay(CalendarRendererDayEventArgs e) { Rectangle r = e.Day.Bounds; Color backColor = ColorTable.DayBackgroundEven; bool draw = true; if (e.Day.Selected) { backColor = ColorTable.DayBackgroundSelected; } else if (e.Day.Date.Month % 2 == 0) { backColor = ColorTable.DayBackgroundEven; } else { backColor = ColorTable.DayBackgroundOdd; } if (e.Calendar.DaysMode == CalendarDaysMode.Short && e.Calendar.Holidays.ContainsKey(e.Day.Date)) { //Get the image and if it exists, draw it. Image i = e.Calendar.Holidays.GetImageForDay(e.Day.Date); if (i != null) { var imgRect = new Rectangle(r.X, r.Y + e.Day.HeaderBounds.Height, r.Width, r.Height - e.Day.HeaderBounds.Height); if (imgRect.Height > 0 && imgRect.Width > 0) { e.Graphics.DrawImage(i, imgRect); } if (e.Day.Selected) { backColor = CalendarColorTable.FromBaseColor(backColor, 110); } else { draw = false; } } } if (draw) { using (Brush b = new SolidBrush(backColor)) if (r.Width > 0 && r.Height > 0) { e.Graphics.FillRectangle(b, r); } } base.OnDrawDay(e); }
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)) { if (e.Day.HeaderBounds.Height > 0 && e.Day.HeaderBounds.Width > 0) { e.Graphics.FillRectangle(b, e.Day.HeaderBounds); } } base.OnDrawDayHeaderBackground(e); }
public override void OnDrawDay(CalendarRendererDayEventArgs e) { bool isHoliday = false; foreach (DateTime holiday in _holidays) { if (holiday.Date == e.Day.Date) { isHoliday = true; } } Rectangle r = e.Day.Bounds; if (isHoliday) { using (Brush b = new SolidBrush(Color.Gray)) { e.Graphics.FillRectangle(b, r); } } else 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); }
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)) { if (e.Day.DayTop.Bounds.Height > 0 && e.Day.DayTop.Bounds.Width > 0) { e.Graphics.DrawRectangle(p, e.Day.DayTop.Bounds); } } base.OnDrawDayTop(e); }
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); } } }
/// <summary> /// Draws the all day items area /// </summary> /// <param name="e">Paint Info</param> public virtual void OnDrawDayTop(CalendarRendererDayEventArgs e) { }
/// <summary> /// Paints the body of the day. Usually timeline unit indicator lines or a solid color if /// <see cref="Calendar.DaysMode"/> is <see cref="CalendarDaysMode.Short"/> /// </summary> /// <param name="e"></param> public virtual void OnDrawDayTimeUnits(CalendarRendererDayEventArgs e) { for (int i = 0; i < e.Day.TimeUnits.Length; i++) { CalendarTimeScaleUnit unit = e.Day.TimeUnits[i]; if(unit.Visible) OnDrawDayTimeUnit(new CalendarRendererTimeUnitEventArgs(e, unit)); } }
/// <summary> /// Draws the overflow to start of specified day /// </summary> /// <param name="e">Event data</param> public virtual void OnDrawDayOverflowStart(CalendarRendererDayEventArgs e) { }
/// <summary> /// Draws the overflow to end of specified day /// </summary> /// <param name="e"></param> public virtual void OnDrawDayOverflowEnd(CalendarRendererDayEventArgs e) { //e.Graphics.FillRectangle(Brushes.Red, e.Day.OverflowEndBounds); }
/// <summary> /// Paints the background of the specified day's header /// </summary> /// <param name="e"></param> public virtual void OnDrawDayHeaderBackground(CalendarRendererDayEventArgs e) { }
/// <summary> /// Paints the specified day on the calendar /// </summary> /// <param name="e">Paint info</param> public virtual void OnDrawDay(CalendarRendererDayEventArgs e) { CalendarDay day = e.Day; CalendarRendererBoxEventArgs hevt = new CalendarRendererBoxEventArgs(e, day.HeaderBounds, day.Date.Day.ToString(), TextFormatFlags.VerticalCenter); hevt.Font = new Font(Calendar.Font, FontStyle.Bold); CalendarRendererBoxEventArgs devt = new CalendarRendererBoxEventArgs(e, day.HeaderBounds, day.Date.ToString("dddd"), TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter); OnDrawDayHeaderBackground(e); if (Calendar.DaysMode == CalendarDaysMode.Short && (day.Index == 0 || day.Date.Day == 1)) { hevt.Text = day.Date.ToString("dd MMM"); } OnDrawDayHeaderText(hevt); if (devt.TextSize.Width < day.HeaderBounds.Width - hevt.TextSize.Width * 2 && e.Calendar.DaysMode == CalendarDaysMode.Expanded) { OnDrawDayHeaderText(devt); } OnDrawDayTimeUnits(e); OnDrawDayTop(e); OnDrawDayBorder(e); }