Freigeben über


Programmgesteuertes Ändern der Auswahl in einem RichTextBox-Element

In diesem Beispiel wird gezeigt, wie die aktuelle Auswahl in einem RichTextBox-Element programmgesteuert geändert wird. Die Auswahl ist genau so, als hätte der Benutzer den Inhalt über die Benutzeroberfläche ausgewählt.

Beispiel

Der folgende Extensible Application Markup Language (XAML)-Code beschreibt ein benanntes RichTextBox-Steuerelement mit einfachem Inhalt.

<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>

Im folgenden Code wird programmgesteuert ein beliebiger Textbereich ausgewählt, wenn der Benutzer in das RichTextBox-Element klickt.


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

Namespace SDKSample
    Partial Public Class ChangeSelectionProgrammaticaly
        Inherits Page

        ' Change the current selection.
        Private Sub ChangeSelection(ByVal sender As Object, ByVal args As RoutedEventArgs)
            ' Create two arbitrary TextPointers to specify the range of content to select.
            Dim myTextPointer1 As TextPointer = myParagraph.ContentStart.GetPositionAtOffset(20)
            Dim myTextPointer2 As TextPointer = myParagraph.ContentEnd.GetPositionAtOffset(-10)

            ' Programmatically change the selection in the RichTextBox.
            richTB.Selection.Select(myTextPointer1, myTextPointer2)
        End Sub
    End Class
End Namespace
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);
        }
    }
}

Siehe auch

Konzepte

Übersicht über RichTextBox

Übersicht über TextBox