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);
        }
Exemple #7
0
        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);
        }
        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);
                }
            }
        }