WPF RichTextBox - 选定块?

Ala*_*ark 3 c# wpf richtextbox

我正在尝试使用WPF RichTextBox,并注意到我可以通过循环遍历RichTextBox.Document.Blocks来遍历构成其文档的块.

让插入物包围的块的最佳方法是什么?

我可以得到每个块的CaretPosition和ElementStart和ElementEnd属性,但是看不到如何比较它们,因为实际的字符偏移不会暴露,除非我遗漏了一些明显的东西.

Mat*_*ing 8

var curCaret = richTextBox1.CaretPosition;
var curBlock = richTextBox1.Document.Blocks.Where(x => x.ContentStart.CompareTo(curCaret) == -1 && x.ContentEnd.CompareTo(curCaret) == 1).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)