Skip to main content
A newer version of this page is available. .
.NET Framework 4.5.2+

HitTestManager Class

Provides hit testing for the RichEditControl.

Namespace: DevExpress.XtraRichEdit

Assembly: DevExpress.RichEdit.v19.1.Core.dll

Declaration

public class HitTestManager

Remarks

The HitTestManager class provides the HitTestManager.HitTest method, which allows you to obtain the information about the elements located at the specified point. The RichEditHitTestResult instance, returned by the HitTest method, provides access to the currently retrieved element (RichEditHitTestResult.LayoutElement property) and allows you to get the type (LayoutElement.Type) and coordinates (LayoutElement.Bounds) of the target object.

Example

if (!e.SelectedControl.Equals(richEditControl1))
    return;

//Obtain the mouse cursor's layout position on the page and the current page index:
PageLayoutPosition pageLayoutPosition = richEditControl1.ActiveView.GetDocumentLayoutPosition(e.ControlMousePosition);
if (pageLayoutPosition == null)
    return;            

Point point = pageLayoutPosition.Position;  
int pageIndex = pageLayoutPosition.PageIndex;
LayoutPage layoutPage = richEditControl1.DocumentLayout.GetPage(pageIndex);

//Create a HitTestManager instance: 
HitTestManager hitTest = new HitTestManager(richEditControl1.DocumentLayout);

//Perform the hit test and pass the result to the RichEditHitTestResult object:
RichEditHitTestResult result = hitTest.HitTest(layoutPage, point);
if (result != null)
{
    //Retrieve the current layout element type:
    LayoutElement element = result.LayoutElement;
    string text = element.Type.ToString();

    //Obtain the the text character and its bounds under the mouse position              
    if (element.Type == LayoutType.CharacterBox)
    {
        text += String.Format(" : \"{0}\"", (element as CharacterBox).Text);
        text += GetBounds(element);
        if (element.Parent.Type == LayoutType.PlainTextBox)
        {
            text += String.Format("\r\nPlainTextBox : \"{0}\"", (element.Parent as PlainTextBox).Text);
            text += GetBounds(element.Parent);
        }
    }
    else
    {
        //Get the hovered element's bounds:
        text += GetBounds(element);
    }

    //Get the element's location:
    string title = GetLocation(element);

    //Display all retrieved information in the tooltip:
    e.Info = new ToolTipControlInfo(element.Bounds, text, title, ToolTipIconType.Information);

}

The following code snippets (auto-collected from DevExpress Examples) contain references to the HitTestManager class.

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.

Inheritance

Object
HitTestManager
See Also