ezik117/TextEditor

Не сохраняется стиль шрифта при изменении размера.

Opened this issue · 2 comments

Не сохраняется стиль шрифта при изменении размера.

Проблема в том, что SelectionFont не содержит коллекцию разных шрифтов, а SelectionText невозможно разбить на части по разным шрифтам. Таким образом необходимо работать с каждым символом (или блоком символов) с одинаковым шрифтом. Другая часть проблемы в том, что на момент изменения шрифта необходимо отключать обновление Control'а и стек Undo. Первое можно делать или делая выход из функции OnPaint на входе в процедуру или отправляя сообщение API: WM_SETREDRAW. Второе - это использование интерфейса IRichEditOle для доступа к методу Undo.
https://stackoverflow.com/questions/26700102/how-to-change-the-font-of-multiple-sizes-in-richtextbox-in-c
https://stackoverflow.com/questions/4138981/temporaily-disabling-the-c-sharp-rich-edit-undo-buffer-while-performing-syntax-h
https://github.com/Isaac44/SingleCodes/blob/master/CSharp/RichOLE.cs

Реализовал через перебор шрифта. Блокировка Undo пока не реализована. Блокировка контрола выполнена.