TextSelection Class
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Encapsulates the selection state for the RichTextBox control.
Inheritance Hierarchy
System.Object
System.Windows.Documents.TextSelection
Namespace: System.Windows.Documents
Assembly: System.Windows (in System.Windows.dll)
Syntax
'Declaration
Public NotInheritable Class TextSelection
public sealed class TextSelection
The TextSelection type exposes the following members.
Properties
Name | Description | |
---|---|---|
End | Gets a TextPointer that represents the end of the current selection. | |
Start | Gets a TextPointer that represents the beginning of the current selection. | |
Text | Gets or sets the plain text contents of the current selection. | |
Xaml | Gets or sets the XAML representation of the current selection. |
Top
Methods
Name | Description | |
---|---|---|
ApplyPropertyValue | Applies the specified formatting property and value to the current selection. | |
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetPropertyValue | Gets the value of the specified formatting property on the current selection. | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Insert | Inserts or replaces the content at the current selection as a TextElement. | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Select | Updates the current selection, taking two TextPointer positions to indicate the updated selection. | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Top
Remarks
The TextSelection class represents the selection of text in the RichTextBox. This type has no public constructor, but you can access the currently selected text in the RichTextBox by using the RichTextBox.Selection property. To perform operations on the selected text, you can use the GetPropertyValue and ApplyPropertyValue methods.
Examples
The following example shows how to apply bold, italic, and underline formatting to selected text.
<!--Create a RichTextBox and three buttons.-->
<StackPanel>
<RichTextBox x:Name="MyRTB" Width="600" Height="400" />
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Button Content="Bold" Height="30" Margin="2" Width="50" Click="BtnBold_Click" />
<Button Content="Italic" Height="30" Margin="2" Width="50" Click="BtnItalic_Click" />
<Button Content="Underline" Height="30" Margin="2" Width="65" Click="BtnUnderline_Click" />
</StackPanel>
</StackPanel>
'Set Bold formatting to selected content
Private Sub BtnBold_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If MyRTB IsNot Nothing Then
If TypeOf MyRTB.Selection.GetPropertyValue(Run.FontWeightProperty) Is FontWeight _
AndAlso (CType(MyRTB.Selection.GetPropertyValue(Run.FontWeightProperty), FontWeight) = FontWeights.Normal) Then
MyRTB.Selection.ApplyPropertyValue(Run.FontWeightProperty, FontWeights.Bold)
Else
MyRTB.Selection.ApplyPropertyValue(Run.FontWeightProperty, FontWeights.Normal)
End If
End If
End Sub
'Set Italic formatting to selected content
Private Sub BtnItalic_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If MyRTB IsNot Nothing Then
If TypeOf MyRTB.Selection.GetPropertyValue(Run.FontStyleProperty) Is FontStyle _
AndAlso (CType(MyRTB.Selection.GetPropertyValue(Run.FontStyleProperty), FontStyle) = FontStyles.Normal) Then
MyRTB.Selection.ApplyPropertyValue(Run.FontStyleProperty, FontStyles.Italic)
Else
MyRTB.Selection.ApplyPropertyValue(Run.FontStyleProperty, FontStyles.Normal)
End If
End If
End Sub
'Set Underline formatting to selected content
Private Sub BtnUnderline_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If (Not (MyRTB) Is Nothing) Then
If (MyRTB.Selection.GetPropertyValue(Run.TextDecorationsProperty) Is Nothing) Then
MyRTB.Selection.ApplyPropertyValue(Run.TextDecorationsProperty, TextDecorations.Underline)
Else
MyRTB.Selection.ApplyPropertyValue(Run.TextDecorationsProperty, Nothing)
End If
End If
End Sub
//Set Bold formatting to selected content
private void BtnBold_Click(object sender, RoutedEventArgs e)
{
if (MyRTB != null)
{
if (MyRTB.Selection.GetPropertyValue(Run.FontWeightProperty) is FontWeight && ((FontWeight)MyRTB.Selection.GetPropertyValue(Run.FontWeightProperty)) == FontWeights.Normal)
MyRTB.Selection.ApplyPropertyValue(Run.FontWeightProperty, FontWeights.Bold);
else
MyRTB.Selection.ApplyPropertyValue(Run.FontWeightProperty, FontWeights.Normal);
}
}
//<SnippetItalic>
//Set Italic formatting to selected content
private void BtnItalic_Click(object sender, RoutedEventArgs e)
{
if (MyRTB != null)
{
if (MyRTB.Selection.GetPropertyValue(Run.FontStyleProperty) is FontStyle && ((FontStyle)MyRTB.Selection.GetPropertyValue(Run.FontStyleProperty)) == FontStyles.Normal)
MyRTB.Selection.ApplyPropertyValue(Run.FontStyleProperty, FontStyles.Italic);
else
MyRTB.Selection.ApplyPropertyValue(Run.FontStyleProperty, FontStyles.Normal);
}
}
//Set Underline formatting to selected content
private void BtnUnderline_Click(object sender, RoutedEventArgs e)
{
if (MyRTB != null)
{
if (MyRTB.Selection.GetPropertyValue(Run.TextDecorationsProperty) == null)
MyRTB.Selection.ApplyPropertyValue(Run.TextDecorationsProperty, TextDecorations.Underline);
else
MyRTB.Selection.ApplyPropertyValue(Run.TextDecorationsProperty, null);
}
}
Version Information
Silverlight
Supported in: 5, 4
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also