Я хотел бы определить, есть ли встроенный объект InlineUIContainer (или BlockUIContainer) в текущей позиции Caret в WPF RichTextBox.Определение выделенного InlineUIContainer в WPF RichTextBox
В настоящее время у меня есть RichTextBox, как указано ниже;
<RichTextBox SelectionChanged="RichTextBox_SelectionChanged">
<FlowDocument>
<Paragraph>
<Run>Some text before</Run>
<InlineUIContainer>
<Label>I am a label</Label>
</InlineUIContainer>
<Run>Some text after</Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
В событии SelectionChanged я попытался использовать;
rtf.CaretPosition.GetAdjacentElement(rtf.CaretPosition.LogicalDirection)
... который возвращается null.
Я могу сделать это с помощью обработчика событий MouseDoubleClicked следующим образом;
Point pos = e.GetPosition(rtf);
TextPointer pointer = rtf.GetPositionFromPoint(pos, false);
Console.WriteLine(pointer.GetAdjacentElement(pointer.LogicalDirection));
Но я бы очень хотел, чтобы он работал, когда положение каретки RichTextBox изменяется.
Есть ли способ, которым я могу это достичь?
Заранее спасибо
Matt
Я дал вашему второму предложению уйти, и, похоже, он работает. Большое спасибо! – user77159