Back to Devexpress

CustomMark Interface

officefileapi-devexpress-dot-xtrarichedit-dot-api-dot-native-2685337f.md

latest5.2 KB
Original Source

CustomMark Interface

Represents a custom mark in the document.

Namespace : DevExpress.XtraRichEdit.API.Native

Assembly : DevExpress.RichEdit.v25.2.Core.dll

NuGet Package : DevExpress.RichEdit.Core

Declaration

csharp
[ComVisible(true)]
public interface CustomMark
vb
<ComVisible(True)>
Public Interface CustomMark

The following members return CustomMark objects:

Remarks

A custom mark enables you to draw attention to a position in a document. A visual element can be painted at the position associated with a custom mark. Custom marks are not saved when a document is exported to any format.

Use the CustomMarkCollection.Create method to create a mark and add it to the SubDocument.CustomMarks collection. Subsequently you can visualize it by handling the CustomMark 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.

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

See Also

CustomMark Members

CustomMarkDraw

CustomMarks

DevExpress.XtraRichEdit.API.Native Namespace