RichEditControl.CustomMarkDraw Event
Fires before a custom mark is painted, and enables you to visualize the custom mark as required.
Namespace: DevExpress.XtraRichEdit
Assembly: DevExpress.XtraRichEdit.v24.2.dll
Declaration
Event Data
The CustomMarkDraw event's data class is RichEditCustomMarkDrawEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
Graphics | Gets an object used for painting. |
VisualInfoCollection | Provides access to information required to visualize custom marks. |
Remarks
Use the CustomMarkCollection.Create method to create a mark, add it to the SubDocument.CustomMarks collection and visualize it by handling the CustomMarkDraw event.
This code snippet illustrates the use of the CustomMarkCollection.Create method and the RichEditControl.CustomMarkDraw
event, to add a mark to the selection and draw its visual representation.
using DevExpress.XtraRichEdit.API.Native;
using DevExpress.XtraRichEdit.Layout.Export;
using System.Drawing.Drawing2D;
private void btn_Mark_Click(object sender, EventArgs e)
{
Document doc = richEditControl1.Document;
CustomMark m = doc.CustomMarks.Create(doc.Selection.Start, Color.DarkOrange);
}
private void richEditControl1_CustomMarkDraw(object sender, DevExpress.XtraRichEdit.RichEditCustomMarkDrawEventArgs e)
{
foreach (CustomMarkVisualInfo info in e.VisualInfoCollection)
{
Document doc = richEditControl1.Document;
CustomMark mark = doc.CustomMarks.GetByVisualInfo(info);
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
Color curColor = (Color)info.UserData;
if (mark.Position < doc.Selection.Start) { curColor = Color.Green; }
using (Pen p = new Pen(curColor, 3))
{
p.StartCap = LineCap.Flat;
p.EndCap = LineCap.ArrowAnchor;
e.Graphics.DrawLine(p, new Point(0, info.Bounds.Y), info.Bounds.Location);
}
}
}
See Also