Пример #1
0
 public void FindNext()
 {
     if (this.Document.Selection.IsEmpty)
     {
         this.FindNext(this.Document.CaretPosition);
     }
     else
     {
         DocumentPosition fromPosition = new DocumentPosition(this.Document.Selection.Ranges.Last.StartPosition);
         fromPosition.MoveToNext();
         this.FindNext(fromPosition);
     }
 }
Пример #2
0
 public void FindNext()
 {
     if (this.Document.Selection.IsEmpty)
     {
         this.FindNext(this.Document.CaretPosition);
     }
     else
     {
         DocumentPosition fromPosition = new DocumentPosition(this.Document.Selection.Ranges.Last.StartPosition);
         fromPosition.MoveToNext();
         this.FindNext(fromPosition);
     }
 }
        private void HighlightOccurrencesInVisibleBoxes(IEnumerable <SpanLayoutBox> spanList)
        {
            if (spanList.Count() == 0)
            {
                return;
            }
            SpanLayoutBox firstBox = spanList.First();
            SpanLayoutBox lastBox  = spanList.Last();

            DocumentPosition searchStart = new DocumentPosition(this.Document);
            DocumentPosition searchEnd   = new DocumentPosition(this.Document);

            searchStart.MoveToInline(firstBox, 0);
            searchEnd.MoveToInline(lastBox, lastBox.PositionsCountInBox - 1);

            DocumentTextSearch textSearch = new DocumentTextSearch(this.Document);

            TextRange textRange = textSearch.Find(word, searchStart, searchEnd);
            int       count     = 0;

            while (textRange != null)
            {
                count++;
                DocumentPosition lineStart = new DocumentPosition(textRange.StartPosition);
                DocumentPosition lineEnd   = new DocumentPosition(lineStart);
                lineEnd.MoveToCurrentLineEnd();
                while (lineEnd < textRange.EndPosition)
                {
                    this.FlushBoxes(lineStart, lineEnd);
                    lineStart.MoveToCurrentLineEnd();
                    lineStart.MoveToNext();
                    lineEnd.MoveToNext();
                    lineEnd.MoveToCurrentLineEnd();
                }
                this.FlushBoxes(lineStart, textRange.EndPosition);

                searchStart.MoveToPosition(textRange.EndPosition);
                if (searchStart >= searchEnd)
                {
                    break;
                }
                textRange = textSearch.Find(word, searchStart, searchEnd);
            }
        }
Пример #4
0
        private void ShowDialog()
        {
            ImageInline imageInline = this.radRichTextBox.Document.EnumerateChildrenOfType<ImageInline>().FirstOrDefault();
            if (imageInline != null)
            {
                DocumentPosition start = new DocumentPosition(this.radRichTextBox.Document);
                DocumentPosition end = new DocumentPosition(this.radRichTextBox.Document);
                start.MoveToInline(imageInline);
                end.MoveToPosition(start);
                end.MoveToNext();

                this.radRichTextBox.Document.Selection.AddSelectionStart(start);
                this.radRichTextBox.Document.Selection.AddSelectionEnd(end);

                if (this.radRichTextBox.Document.Selection.GetSelectedSingleInline() is ImageInline)
                {
                    this.radRichTextBox.ShowImageEditorDialog();
                }
            }
        }
Пример #5
0
        private void ShowImageEditorDialog()
        {
            ImageInline imageInline = this.radRichTextBox.Document.EnumerateChildrenOfType <ImageInline>().FirstOrDefault();

            if (imageInline != null)
            {
                DocumentPosition start = new DocumentPosition(this.radRichTextBox.Document);
                DocumentPosition end   = new DocumentPosition(this.radRichTextBox.Document);
                start.MoveToInline(imageInline);
                end.MoveToPosition(start);
                end.MoveToNext();

                this.radRichTextBox.Document.Selection.AddSelectionStart(start);
                this.radRichTextBox.Document.Selection.AddSelectionEnd(end);

                if (this.radRichTextBox.Document.Selection.GetSelectedSingleInline() is ImageInline)
                {
                    this.radRichTextBox.ShowImageEditorDialog();
                }
            }
        }
        private void HighlightOccurrencesInVisibleBoxes(IEnumerable<SpanLayoutBox> spanList)
        {
            if (spanList.Count() == 0)
            {
                return;
            }
            SpanLayoutBox firstBox = spanList.First();
            SpanLayoutBox lastBox = spanList.Last();

            DocumentPosition searchStart = new DocumentPosition(this.Document);
            DocumentPosition searchEnd = new DocumentPosition(this.Document);
            searchStart.MoveToInline(firstBox, 0);
            searchEnd.MoveToInline(lastBox, lastBox.PositionsCountInBox - 1);

            DocumentTextSearch textSearch = new DocumentTextSearch(this.Document);

            TextRange textRange = textSearch.Find(word, searchStart, searchEnd);
            int count = 0;
            while (textRange != null)
            {
                count++;
                DocumentPosition lineStart = new DocumentPosition(textRange.StartPosition);
                DocumentPosition lineEnd = new DocumentPosition(lineStart);
                lineEnd.MoveToCurrentLineEnd();
                while (lineEnd < textRange.EndPosition)
                {
                    this.FlushBoxes(lineStart, lineEnd);
                    lineStart.MoveToCurrentLineEnd();
                    lineStart.MoveToNext();
                    lineEnd.MoveToNext();
                    lineEnd.MoveToCurrentLineEnd();
                }
                this.FlushBoxes(lineStart, textRange.EndPosition);

                searchStart.MoveToPosition(textRange.EndPosition);
                if (searchStart >= searchEnd)
                {
                    break;
                }
                textRange = textSearch.Find(word, searchStart, searchEnd);
            }
        }
        private void ReplaceSemanticRange(RadDocument document, string semanticRangeName, DocumentFragment replacement)
        {
            RecipeRangeStart start = null;
            RecipeRangeEnd end = null;
            foreach (RecipeRangeStart rangeStart in document.GetAnnotationMarkersOfType<RecipeRangeStart>())
            {
                if (rangeStart.Name == semanticRangeName)
                {
                    start = rangeStart;
                    end = (RecipeRangeEnd)rangeStart.End;
                }
            }

            if (start != null && end != null)
            {
                DocumentPosition startPosition = new DocumentPosition(document);
                startPosition.MoveToInline((InlineLayoutBox)start.FirstLayoutBox, 0);
                startPosition.MoveToNext();
                DocumentPosition endPosition = new DocumentPosition(document);
                endPosition.MoveToInline((InlineLayoutBox)end.FirstLayoutBox, 0);

                document.DeleteRange(startPosition, endPosition);

                document.CaretPosition.MoveToInline((InlineLayoutBox)start.FirstLayoutBox, 0);
                document.CaretPosition.MoveToNext();
                document.InsertFragment(replacement);
            }
        }