Programmgesteuertes Ändern der Auswahl in einem RichTextBox-Element
Aktualisiert: November 2007
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.
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);
}
}
}