Share via


Modification par programme de la sélection dans un RichTextBox

Mise à jour : novembre 2007

Cet exemple montre comment modifier par programme la sélection actuelle dans un RichTextBox. Cette sélection est la même que si l'utilisateur avait sélectionné le contenu via l'interface utilisateur.

Exemple

Le code XAML (Extensible Application Markup Language) suivant décrit un contrôle nommé RichTextBox avec du contenu simple.

<Page xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.ChangeSelectionProgrammaticaly" >

  <StackPanel>
    <RichTextBox GotMouseCapture="ChangeSelection" Name="richTB">
      <FlowDocument>
        <Paragraph Name="myParagraph">
          <Run>
            When the user clicks in the RichTextBox, the selected
            text changes programmatically.
          </Run>
        </Paragraph>
      </FlowDocument>
    </RichTextBox>
  </StackPanel>

</Page>

Le code suivant sélectionne par programme du texte arbitraire lorsque l'utilisateur clique dans le RichTextBox.

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

namespace SDKSample
{
    public partial class ChangeSelectionProgrammaticaly : Page
    {

        // Change the current selection.
        void ChangeSelection(Object sender, RoutedEventArgs args)
        {
            // Create two arbitrary TextPointers to specify the range of content to select.
            TextPointer myTextPointer1 = myParagraph.ContentStart.GetPositionAtOffset(20);
            TextPointer myTextPointer2 = myParagraph.ContentEnd.GetPositionAtOffset(-10);

            // Programmatically change the selection in the RichTextBox.
            richTB.Selection.Select(myTextPointer1, myTextPointer2);
        }
    }
}

Voir aussi

Concepts

Vue d'ensemble de RichTextBox

Vue d'ensemble de TextBox