SchedulerControl.CustomDrawDependency Event
Enables dependencies to be painted manually.
Namespace: DevExpress.XtraScheduler
Assembly: DevExpress.XtraScheduler.v24.1.dll
NuGet Package: DevExpress.Win.Scheduler
Declaration
Event Data
The CustomDrawDependency 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. |
ObjectInfo | Gets information on the painted element. |
The event data class exposes the following methods:
Method | Description |
---|---|
DrawDefault() | Renders the element using the default drawing mechanism. |
DrawHtml(HtmlTemplate, DxHtmlPainterContext, Action<DxHtmlPainterArgs>) | 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. |
DrawHtml(HtmlTemplate, Action<DxHtmlPainterArgs>) | Paints the required HTML template inside an element that raised this event. |
GetDisplayValue(String) | |
GetValue(String) |
Remarks
The CustomDrawDependency event is raised before a Dependency is painted. The event parameter’s CustomDrawObjectEventArgs.ObjectInfo property provides all the information necessary to paint a dependency. The return value of this property should be typecast to the DependencyViewInfo type.
Set the CustomDrawObjectEventArgs.Handled property to true to prohibit default appointment painting.
The following code snippet draws a red dashed line to indicate appointment dependencies other than AppointmentDependencyType.FinishToStart type in the Gantt View. Default dependency painting is cancelled by setting the CustomDrawObjectEventArgs.Handled to true.
private void schedulerControl1_CustomDrawDependency(object sender, CustomDrawObjectEventArgs e)
{
DependencyViewInfo dvi = (DependencyViewInfo)e.ObjectInfo;
if (dvi.Dependencies[0].Type != AppointmentDependencyType.FinishToStart) {
Pen myPen = e.Cache.GetPen(Color.Red);
myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
dvi.Graphics.DrawLine(myPen, dvi.Start, dvi.End);
e.Handled = true;
}
}