ReadOnlyCustomMarkCollection.GetByVisualInfo(CustomMarkVisualInfo) Method
Obtains a custom mark by its visual info available in the RichEditControl.CustomMarkDraw event handler.
Namespace: DevExpress.XtraRichEdit.API.Native
Assembly: DevExpress.RichEdit.v19.1.Core.dll
Declaration
Parameters
Name | Type | Description |
---|---|---|
customMarkVisualInfo | DevExpress.XtraRichEdit.Layout.Export.CustomMarkVisualInfo | A DevExpress.XtraRichEdit.Layout.Export.CustomMarkVisualInfo object. A collection of such objects is accessible using the RichEditCustomMarkDrawEventArgs.VisualInfoCollection property. |
Returns
Type | Description |
---|---|
CustomMark | A CustomMark object that is the target custom mark. |
Example
This code snippet illustrates the use of the SubDocument.CreateCustomMark method and the RichEditControl.CustomMarkDraw event, to add a mark to the selection and draw its visual representation.
Note
A complete sample project is available at https://github.com/DevExpress-Examples/how-to-draw-custom-marks-in-the-document-e2590
Imports DevExpress.XtraRichEdit.API.Native
Imports DevExpress.XtraRichEdit.Layout.Export
Imports System.Drawing.Drawing2D
Private Sub btn_Mark_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_Mark.Click
Dim doc As Document = richEditControl1.Document
Dim m As CustomMark = doc.CustomMarks.Create(doc.Selection.Start, Color.DarkOrange)
End Sub
Private Sub richEditControl1_CustomMarkDraw(ByVal sender As Object, ByVal e As DevExpress.XtraRichEdit.RichEditCustomMarkDrawEventArgs) Handles richEditControl1.CustomMarkDraw
For Each info As CustomMarkVisualInfo In e.VisualInfoCollection
Dim doc As Document = richEditControl1.Document
Dim mark As CustomMark = doc.CustomMarks.GetByVisualInfo(info)
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
Dim curColor As Color = CType(info.UserData, Color)
If mark.Position < doc.Selection.Start Then
curColor = Color.Green
End If
Dim p As 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)
Next info
End Sub
Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the GetByVisualInfo(CustomMarkVisualInfo) method.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.