2015-11-06 3 views
3

Я расширяю функциональность WPF Richtextbox. Я хочу, чтобы определенный текст, чтобы стать смелым, когда я печатаю его я был в состоянии получить некоторый текст жирным шрифтом, а текст после слова жирный также стать жирным шрифтом ...Задайте конкретный текст полужирным в WPF RichTextBox

Heres образец моего кода:.

private bool _Running = false; 
void CustomRichTextBox_TextChange(object sender, TextChangedEventArgs e) 
{ 
    if(_Running) 
     return; 
    _Running = true; 

    //Logic to see if text detected 

    //Logic to get TextPointers 

    //Logic to get TextRange 
    var boldMe = new TextRange(textPointer1, textPointer2); 
    //Bold text 
    boldMe.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold); 

    _Running = false; 
} 

Я хочу:

NOTBOLDED NOTBOLDED Bolded NOTBOLDED

но что я получаю:

NOTBOLDED NOTBOLDED BOLDED NOTBOLDED

** Обратите внимание, что при печати печатается полужирным шрифтом.

Как предотвратить выделение текста после выделенного жирным шрифтом текста?


Не дублировать вопрос, так как принято решение при условии ссылки для WinForms, а остальные для заданного текста.

+0

Возможный дубликат [Создание специального текста, выделенного жирным шрифтом в текстовом поле] (http://stackoverflow.com/questions/6403902/making-specific-text-bolded-in-a-textbox) –

ответ

2

После нескольких испытаний я выяснил, какое простое решение.

CaretPosition = CaretPosition.GetPositionAtOffset(0, LogicalDirection.Forward); 

Этот набор кадров находится в правильной ориентации, предотвращая продолжение установки BOLD в объекте Run.

if(textPointerEnd.GetNextInsertionPosition(LogicalDirection.Forward) == null) 
    new Run("", textPointerEnd); 

Это добавит объект Run до конца нового Жирного объекта, который был расположен в конце объекта Paragraph.

1

Вам нужно будет определить, когда ваш требуемый текст больше не обнаружен, возможно, если происходит пробел, затем удалите значение смещения и верните его в нормальное состояние.

+0

Обнаружение, если оно выделено жирным шрифтом или нет для каждый персонаж будет стоить дорого. Есть ли альтернатива? – SILENT

 Смежные вопросы

  • Нет связанных вопросов^_^