private void richEditControl1_MouseClick(object sender, MouseEventArgs e) { PageLayoutPosition pageLayoutPosition = richEditControl1.ActiveView.GetDocumentLayoutPosition(e.Location); if (pageLayoutPosition == null) { return; } int pageIndex = pageLayoutPosition.PageIndex; Point point = pageLayoutPosition.Position; LayoutPage layoutPage = richEditControl1.DocumentLayout.GetPage(pageIndex); HitTestManager hitTest = new HitTestManager(richEditControl1.DocumentLayout); RichEditHitTestResult result = hitTest.HitTest(layoutPage, point); if (result.LayoutElement is CharacterBox && richEditControl1.Document.Selection.Length == 0) { CharacterBox character = (CharacterBox)result.LayoutElement; DocumentPosition caretPosition = richEditControl1.Document.CaretPosition; SubDocument document = caretPosition.BeginUpdateDocument(); if (document.GetSubDocumentType() == GetLocation(character.Parent)) { DocumentRange characterRange = document.CreateRange(character.Range.Start, 1); UpdateCheckState(document, characterRange, character.Text); } caretPosition.EndUpdateDocument(document); } }
public static string GetInformationAboutCurrentDocumentElement(Document currentDocument, DocumentLayout currentDocumentLayout, SubDocument currentSubDocument, DocumentPosition docPosition) { if (currentSubDocument.GetSubDocumentType() == SubDocumentType.TextBox) { return(TextBoxLayoutHelper.GetInformationAboutCurrentTextBox(currentSubDocument, currentDocumentLayout, docPosition)); } if (currentSubDocument.GetSubDocumentType() == SubDocumentType.Main) { RangedLayoutElement tableCell = currentDocumentLayout.GetElement(docPosition, LayoutType.TableCell); if (tableCell != null) { // collect information about TABLE CELL return(DocumentElementLayoutHelper.GetInformationAboutCurrentTableCell(currentDocument, tableCell as LayoutTableCell)); } RangedLayoutElement imageinline = currentDocumentLayout.GetElement(docPosition, LayoutType.InlinePictureBox); if (imageinline != null) { // collect information about INLINE PICTURE return(DocumentElementLayoutHelper.GetInformationAboutCurrentInlinePicture(imageinline as InlinePictureBox)); } RangedLayoutElement floatingObjectAnchor = currentDocumentLayout.GetElement(docPosition, LayoutType.FloatingObjectAnchorBox); if (floatingObjectAnchor != null) { // collect information about FLOATING OBJECT return(DocumentElementLayoutHelper.GetInformationAboutCurrentFloatingObject(floatingObjectAnchor as FloatingObjectAnchorBox, currentDocumentLayout)); } RangedLayoutElement regularTextBlock = currentDocumentLayout.GetElement(docPosition, LayoutType.PlainTextBox); if (regularTextBlock != null) { // collect information about REGULAR TEXT BLOCK return(DocumentElementLayoutHelper.GetInformationAboutRegularTextBlock(regularTextBlock as PlainTextBox, currentDocument)); } } return(""); }