在 C# WPF 中设置 RichTextBox 的光标位置可以使用 CaretPosition 属性。
以下是设置 RichTextBox 光标位置的步骤:
FlowDocument doc = richTextBox.Document;
获取要设置光标位置的 TextPointer 对象。你可以通过以下方法获取 TextPointer:
通过 RichTextBox.CaretPosition 获取当前光标位置的 TextPointer 对象。
通过 TextPointer 的 GetPositionAtOffset 或 GetPositionAtCharOffset 方法获取指定位置的 TextPointer 对象。
例如,以下代码将光标位置设置为文档的开头:
TextPointer position = doc.ContentStart;
richTextBox.CaretPosition = position;
如果需要设置光标位置之前或之后的文本选择,请使用 Selection 属性。
例如,以下代码将从光标位置开始的下一个字符选择:
TextPointer startPosition = richTextBox.CaretPosition.GetNextInsertionPosition(LogicalDirection.Forward);
TextPointer endPosition = startPosition.GetNextInsertionPosition(LogicalDirection.Forward);
richTextBox.Selection.Select(startPosition, endPosition);
设置光标位置时需要注意以下几点:
要确保 RichTextBox 的 IsReadOnly 属性不是 true,否则无法设置光标位置。
在操作 RichTextBox 前要确保其已加载完毕,例如在 Window.Loaded 事件中执行操作。
由于 RichTextBox 可以包含多个段落和行,因此在设置光标位置时要注意文档的结构和样式。
希望这些信息能帮到你,如果你有任何疑问,请随时提出。