|
|
|||||
[+1 05.11.12]
Регистрация: Feb 2011
Сообщений: 431
|
Сохранить формат отрезка текста.
Доброго времени суток.
У меня задача задать отрезку текста в TextArea нужный стиль (bold, italic, underline) и шрифт, но в то же время сохранить предыдущий, чтобы была возможность откатить. Проблема в том, что если в выбранном отрезке есть символы с разными стилями и шрифтами, я не смогу сохранить это в один отдельный TextLayoutFormat. Скорее всего вопрос где-то уже поднимался, но найти не могу. Наверное , как вариант, посимвольно сохранять стиль, но создавать по TextLayoutFormat'y на символ это оверкил. Думал html text использовать, но не знаю как я смогу нарыть html text именно для своего отрезка текста из всей той кучи тэгов. То есть как-то смогу наверное регулярками, но тоже будет очень муторно. Может есть другие варианты попроще и получше? |
|
|||||
По идее, перед применением надо
- найти и запомнить все _концы_ и _начала_ применений стилей внутри изменяемого отрезка текста (стиль, индекс) При применении - запомнить куда вставили новые _начала_ и _концы_ стилей При отмене - удалить концы и начала по запомненным индексам - вставить запомненные старые _концы_ и _начала_. Проблема в том что, я не работал с TextArea и не знаю, как там обращаются со стилями и вообще бывают ли они вложенными, т.е. может там что-то другое нужно. Если говорить о простом TextField и TextFormat - то там, похоже, при применении сканировать посимвольно, сравнивать форматы - если одинаковые для соседних символов - запоминать в виде [(format1, количество символов), (format2, ...], а перед откатом заменить все null-вые поля объектов TextFormat на дефолтные - иначе не перетрут существующие. Последний раз редактировалось expl; 21.02.2013 в 23:42. |
|
|||||
Регистрация: Jan 2011
Сообщений: 200
|
если вы знаете название старого стиля, то для htmlText сработает обычный replace()
|
Часовой пояс GMT +4, время: 00:49. |
|
« Предыдущая тема | Следующая тема » |
|
|