SchedulerControl.CustomDrawDayOfWeekHeader Event
Enables day of week headers to be painted manually.
Namespace: DevExpress.XtraScheduler
Assembly: DevExpress.XtraScheduler.v24.2.dll
NuGet Package: DevExpress.Win.Scheduler
#Declaration
public event CustomDrawObjectEventHandler CustomDrawDayOfWeekHeader
#Event Data
The CustomDrawDayOfWeekHeader event's data class is CustomDrawObjectEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
Bounds | Returns the bounding rectangle of the drawing area. |
Cache | Gets an object which specifies the storage for the pens, fonts and brushes. Use it for custom painting in Scheduler Reports. |
Graphics | Gets an object used for painting. |
Handled | Gets or sets whether an event was handled. If it was handled, the default actions are not required. |
Object |
Gets information on the painted element. |
The event data class exposes the following methods:
Method | Description |
---|---|
Draw |
Renders the element using the default drawing mechanism. |
Draw |
Paints the required HTML template inside an element that raised this event. The context parameter allows you to assign an object that transfers mouse events to template elements. |
Draw |
Paints the required HTML template inside an element that raised this event. |
Get |
|
Get |
#Remarks
The CustomDrawDayOfWeekHeader event is raised before the Day of Week header is painted. The event parameter’s CustomDrawObjectEventArgs.ObjectInfo property provides the information which is required to paint a header. The return value of this property should be typecast to the DayOfWeekHeader type.
Set the CustomDrawObjectEventArgs.Handled property to true to prohibit default header painting.
#Example
This example paints day headers with green gradient color and draws header captions using white color.
public static void scheduler_CustomDrawDayOfWeekHeader(object sender, CustomDrawObjectEventArgs e)
{
DayOfWeekHeader header = e.ObjectInfo as DayOfWeekHeader;
// Draw the outer rectangle.
using(var backBrush = new LinearGradientBrush(e.Bounds,
Color.LightGreen, Color.Green, LinearGradientMode.Vertical))
e.Cache.FillRectangle(backBrush, e.Bounds);
Rectangle innerRect = Rectangle.Inflate(e.Bounds, -2, -2);
// Draw the inner rectangle.
using(var backBrush = new LinearGradientBrush(e.Bounds,
Color.Green, Color.LightGreen, LinearGradientMode.Vertical))
e.Cache.FillRectangle(backBrush, innerRect);
// Draw the header caption.
e.Cache.DrawString(header.Caption, header.Appearance.HeaderCaption.Font,
Brushes.White, innerRect,
header.Appearance.HeaderCaption.GetStringFormat());
e.Handled = true;
}