Richtextbox неправильно закрашивает символы

209
06 октября 2021, 22:30

Делаю токенизатор на WPF C#, хотел сделать подсветку токенов цветом, для начала решил сделать чередование 5 красных и 5 черных символов, в результате чередование наложилось не на весь текст и еще не правильно.

string str_source = new TextRange(RichTextBox_input.Document.ContentStart, RichTextBox_input.Document.ContentEnd).Text + ' ';
        for (int i = 0; i < str_source.Length; i += 5)
        {
            if (i % 10 == 0)
            {
                selection_color(i, 5, new SolidColorBrush(Color.FromRgb(255, 0, 0)));
            }
        }

Вот метод который написал для выделения цветом текста:

public void selection_color(int start,int length, SolidColorBrush color)
    {
        TextPointer textPointerStart = RichTextBox_input.Document.ContentStart.GetPositionAtOffset(start);
        TextPointer textPointerEnd = RichTextBox_input.Document.ContentStart.GetPositionAtOffset(start + length);
        var selection = RichTextBox_input.Selection;
        selection.Select(textPointerStart, textPointerEnd);
        selection.ApplyPropertyValue(TextElement.ForegroundProperty, color);
    }

В результате получаю вот такое:

Хотелось бы узнать в чем ошибка и почему не работает чередование 5 красных и 5 черных символов

READ ALSO
25 600 движущихся спрайтов

25 600 движущихся спрайтов

Постановка задачи: Нам нужно создать сетку из спрайтов 160х160Каждый спрайт движется в рандомном направлении и с рандомной скоростью

161
Как вывести GIF-Изображение по нажатию button

Как вывести GIF-Изображение по нажатию button

Делаю развивающую игру для ребенкаНужно что бы при нажатии на обычную кнопку которая находится на форме, появлялась картинка в виде GIF анимации...

297
Регистрация и авторизация в asp.net Core + Angular 8

Регистрация и авторизация в asp.net Core + Angular 8

вот уже добрые 5 дней мучаюсь и не могу найти руководство по авторизации в коре и онгуляреЕсло в коре я создаю все как надо, то когда дело доходит...

178