Jeśli podano tylko indeks i długość (lub EndIndex) określonego tekstu do wyboru, w jaki sposób można to zrobić w wersji RichTextBox WPF?Jak wybrać tekst RichTextBox, biorąc pod uwagę indeks i długość
Jest to bardzo wykonalne w Textbox, ponieważ można wywołać Textbox.Select (startIndex, długość), ale nie widzę czegoś podobnego w RTB.
Edit: Znalazłem odpowiedź do dokonywania wyboru
internal string Select(RichTextBox rtb, int index, int length)
{
TextRange textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
if (textRange.Text.Length >= (index + length))
{
TextPointer start = textRange.Start.GetPositionAtOffset(index, LogicalDirection.Forward);
TextPointer end = textRange.Start.GetPositionAtOffset(index + length, LogicalDirection.Backward);
rtb.Selection.Select(start, end);
}
return rtb.Selection.Text;
}
Jednak gdy próbuję podświetlić linię po wybór został dokonany:
rtb.Selection.ApplyPropertyValue(TextElement.BackgroundProperty, new SolidColorBrush(Colors.LightBlue));
Funkcja podświetlania działa tylko przy pierwszej próbie i przerwy po drugiej próbie. Ktoś wie, dlaczego?
Select metoda pobiera dwa wskaźniki tekstowych i mam tylko indeks i długość do pracy z którymi są obie liczby całkowite. W jaki sposób poprawnie skonfigurować zmienne pola tekstowego w tym przypadku? – l46kok