Cómo: Insertar un elemento en texto mediante programación

En el ejemplo siguiente se muestra cómo usar dos objetos TextPointer para especificar un intervalo en el texto al que se aplicará un elemento Span.

Ejemplo

using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Controls;
using System.Windows.Documents;

namespace SDKSample
{
    public partial class InsertInlineIntoTextExample : Page
    {
        public InsertInlineIntoTextExample()
        {

            // Create a paragraph with a short sentence
            Paragraph myParagraph = new Paragraph(new Run("Neptune has 72 times Earth's volume..."));

            // Create two TextPointers that will specify the text range the Span will cover
            TextPointer myTextPointer1 = myParagraph.ContentStart.GetPositionAtOffset(10);
            TextPointer myTextPointer2 = myParagraph.ContentEnd.GetPositionAtOffset(-5);

            // Create a Span that covers the range between the two TextPointers.
            Span mySpan = new Span(myTextPointer1, myTextPointer2);
            mySpan.Background = Brushes.Red;

            // Create a FlowDocument with the paragraph as its initial content.
            FlowDocument myFlowDocument = new FlowDocument(myParagraph);

            this.Content = myFlowDocument;
        }
    }
}

Imports System.Windows
Imports System.Windows.Media
Imports System.Windows.Controls
Imports System.Windows.Documents

Namespace SDKSample
    Partial Public Class InsertInlineIntoTextExample
        Inherits Page
        Public Sub New()

            ' Create a paragraph with a short sentence
            Dim myParagraph As New Paragraph(New Run("Neptune has 72 times Earth's volume..."))

            ' Create two TextPointers that will specify the text range the Span will cover
            Dim myTextPointer1 As TextPointer = myParagraph.ContentStart.GetPositionAtOffset(10)
            Dim myTextPointer2 As TextPointer = myParagraph.ContentEnd.GetPositionAtOffset(-5)

            ' Create a Span that covers the range between the two TextPointers.
            Dim mySpan As New Span(myTextPointer1, myTextPointer2)
            mySpan.Background = Brushes.Red

            ' Create a FlowDocument with the paragraph as its initial content.
            Dim myFlowDocument As New FlowDocument(myParagraph)

            Me.Content = myFlowDocument

        End Sub
    End Class
End Namespace

En la ilustración siguiente se muestra el aspecto de este ejemplo.

Elemento Span aplicado a un intervalo de texto

Vea también