TextPointer.GetPositionAtOffset Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Returns a TextPointer to the position indicated by the specified offset, in symbols, from the beginning of the current TextPointer and in the specified direction.
Namespace: System.Windows.Documents
Assembly: System.Windows (in System.Windows.dll)
Syntax
'Declaration
Public Function GetPositionAtOffset ( _
offset As Integer, _
direction As LogicalDirection _
) As TextPointer
public TextPointer GetPositionAtOffset(
int offset,
LogicalDirection direction
)
Parameters
- offset
Type: System.Int32
An offset, in symbols, for which to calculate and return the position. If the offset is negative, the returned TextPointer precedes the current TextPointer; otherwise, it follows.
- direction
Type: System.Windows.Documents.LogicalDirection
One of the LogicalDirection values that specifies the logical direction of the returned TextPointer.
Return Value
Type: System.Windows.Documents.TextPointer
A TextPointer to the position indicated by the specified offset and in the direction specified by the direction parameter, or nulla null reference (Nothing in Visual Basic) if the offset extends past the end of the content.
Remarks
Any of the following is considered to be a symbol:
An opening or closing tag for the TextElement element.
A UIElement element contained in an InlineUIContainer. Note that a UIElement is always counted as exactly one symbol. Any additional content or elements contained by the UIElement are not counted as symbols.
A 16-bit Unicode character inside of a text Run element.
Examples
The following code uses the GetPositionAtOffset method to select arbitrary text in a RichTextBox.
<RichTextBox Name="MyRTB2" Width="150" Height="30" Margin="5">
<Paragraph x:Name="MyPg">Arbitrary text selection</Paragraph>
</RichTextBox>
<Button Click="MyButton2_Click" Content="Select some text" Height="23" Name="MyButton2" Width="112" />
Private Sub MyButton2_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
MyButton2.IsTabStop = False
'Create two arbitrary TextPointers to specify the range of content to select.
Dim MyTP1 As TextPointer = MyPg.ContentStart.GetPositionAtOffset(2, LogicalDirection.Forward)
Dim MyTP2 As TextPointer = MyPg.ContentEnd.GetPositionAtOffset(-1, LogicalDirection.Backward)
'Programmatically change the selection in the RichTextBox
MyRTB2.Selection.[Select](MyTP1, MyTP2)
Dim s As String = MyRTB2.Selection.Text
MyRTB2.Focus()
End Sub
private void MyButton2_Click(object sender, RoutedEventArgs e)
{
MyButton2.IsTabStop = false;
//Create two arbitrary TextPointers to specify the range of content to select.
TextPointer MyTP1 = MyPg.ContentStart.GetPositionAtOffset(2, LogicalDirection.Forward);
TextPointer MyTP2 = MyPg.ContentEnd.GetPositionAtOffset(-1, LogicalDirection.Backward);
//Programmatically change the selection in the RichTextBox
MyRTB2.Selection.Select(MyTP1, MyTP2);
MyRTB2.Focus();
}
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.