Modification par programmation de la sélection dans un RichTextBox
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 Extensible Application Markup Language (XAML) 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.
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);
}
}
}