Skip to main content
.NET Framework 4.5.2+

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.v22.2.Core.dll

NuGet Package: DevExpress.RichEdit.Core

Declaration

CustomMark GetByVisualInfo(
    CustomMarkVisualInfo customMarkVisualInfo
)

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 CustomMarkCollection.Create method and the RichEditControl.CustomMarkDraw event, to add a mark to the selection and draw its visual representation.

View Example

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;
                    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);
            }
        }

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.

See Also