private void richEditControl1_PreviewDragOver(object sender, DragEventArgs e)
        {
            Point            windowsPoint = e.GetPosition((UIElement)richEditControl1);
            DocumentPosition pos          = RichEditHelper.GetDocumentPositionFromWindowsPoint(richEditControl1, windowsPoint);

            if (pos == null)
            {
                return;
            }

            DrawRectange(pos);

            richEditControl1.Document.CaretPosition = pos;
            richEditControl1.ScrollToCaret();
        }
        public void DrawRectange(DocumentPosition pos)
        {
            if (canvas.Children.Contains(rectangle))
            {
                canvas.Children.Remove(rectangle);
            }

            System.Drawing.RectangleF drawingRectange = RichEditHelper.GetRectangleFromDocumentPosition(richEditControl1, pos);

            rectangle = new Rectangle()
            {
                Stroke          = Brushes.Blue,
                StrokeThickness = 1,
                Width           = 2,
                Height          = drawingRectange.Height
            };

            canvas.Children.Add(rectangle);

            Canvas.SetLeft(rectangle, drawingRectange.X);
            Canvas.SetTop(rectangle, drawingRectange.Y);
        }