/// <summary> /// Draws the background of the specified item /// </summary> /// <param name="e">Event Info</param> public override void OnDrawItemBackground(CalendarRendererItemBoundsEventArgs e) { base.OnDrawItemBackground(e); int alpha = 255; if (e.Item.IsDragging) { alpha = 120; } else if (e.Calendar.DaysMode == CalendarDaysMode.Short) { alpha = 200; } Color color1 = Color.White; Color color2 = e.Item.Selected ? ColorTable.ItemSelectedBackground : ColorTable.ItemBackground; if (!e.Item.BackgroundColorLighter.IsEmpty) { color1 = e.Item.BackgroundColorLighter; } if (!e.Item.BackgroundColor.IsEmpty) { color2 = e.Item.BackgroundColor; } ItemFill(e, e.Bounds, Color.FromArgb(alpha, color1), Color.FromArgb(alpha, color2)); }
/// <summary> /// Draws the border of the specified item /// </summary> /// <param name="e">Event Info</param> public override void OnDrawItemBorder(CalendarRendererItemBoundsEventArgs e) { base.OnDrawItemBorder(e); Color a = e.Item.BorderColor.IsEmpty ? ColorTable.ItemBorder : e.Item.BorderColor; Color b = e.Item.Selected && !e.Item.IsDragging ? ColorTable.ItemSelectedBorder : a; Color c = Color.FromArgb(e.Item.IsDragging ? 120 : 255, b); ItemBorder(e, e.Bounds, c, e.Item.Selected && !e.Item.IsDragging ? SelectedItemBorder : 1f); }
/// <summary> /// Raises the <see cref="E:DrawItemBorder"/> event. /// </summary> /// <param name="e">The <see cref="WindowsFormsCalendar.CalendarRendererItemBoundsEventArgs"/> instance containing the event data.</param> public override void OnDrawItemBorder(CalendarRendererItemBoundsEventArgs e) { base.OnDrawItemBorder(e); using (Pen p = new Pen(Color.FromArgb(150, Color.White))) { e.Graphics.DrawLine(p, e.Bounds.Left + ItemRoundness, e.Bounds.Top + 1, e.Bounds.Right - ItemRoundness, e.Bounds.Top + 1); } if (e.Item.Selected && !e.Item.IsDragging) { bool horizontal = false; bool vertical = false; Rectangle r1 = new Rectangle(0, 0, 5, 5); Rectangle r2 = new Rectangle(0, 0, 5, 5); horizontal = e.Item.IsOnDayTop; vertical = !e.Item.IsOnDayTop && e.Calendar.DaysMode == CalendarDaysMode.Expanded; if (horizontal) { r1.X = e.Bounds.Left - 2; r2.X = e.Bounds.Right - r1.Width + 2; r1.Y = e.Bounds.Top + (e.Bounds.Height - r1.Height) / 2; r2.Y = r1.Y; } if (vertical) { r1.Y = e.Bounds.Top - 2; r2.Y = e.Bounds.Bottom - r1.Height + 2; r1.X = e.Bounds.Left + (e.Bounds.Width - r1.Width) / 2; r2.X = r1.X; } if ((horizontal || vertical) && Calendar.AllowItemResize) { if (!e.Item.IsOpenStart && e.IsFirst) { e.Graphics.FillRectangle(Brushes.White, r1); e.Graphics.DrawRectangle(Pens.Black, r1); } if (!e.Item.IsOpenEnd && e.IsLast) { e.Graphics.FillRectangle(Brushes.White, r2); e.Graphics.DrawRectangle(Pens.Black, r2); } } } }
/// <summary> /// Draws the shadow of the specified item /// </summary> /// <param name="e"></param> public override void OnDrawItemShadow(CalendarRendererItemBoundsEventArgs e) { base.OnDrawItemShadow(e); if (e.Item.IsOnDayTop || e.Calendar.DaysMode == CalendarDaysMode.Short || e.Item.IsDragging) { return; } Rectangle r = e.Bounds; r.Offset(ItemShadowPadding, ItemShadowPadding); using (SolidBrush b = new SolidBrush(ColorTable.ItemShadow)) { ItemFill(e, r, ColorTable.ItemShadow, ColorTable.ItemShadow); } }