Заменить текст на изображение в RichTextBox - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь реализовать опцию в richTextBox, чтобы показывать графические смайлики вместо текстового представления. Поэтому я в основном ищу вариант для замены, например, строки «:)» на соответствующую картинку.

Я много гуглил, и единственное простое / рабочее решение, которое я нашел, было:

Clipboard.SetImage( Properties.Resources.angry  );
richTextBox1.Paste();

Но у этого подхода есть большой недостаток - он перезаписывает содержимое буфера обмена, поэтому может помешать пользователю

Может кто-нибудь посоветовать, как это сделать другим способом (без использования буфера обмена)?

Я также думал о сохранении и восстановлении содержимого буфера обмена после операции - но для этого я также не мог найти легкий путь ... Любая помощь / советы будут высоко оценены!

EDIT

На самом деле резервное копирование / восстановление буфера обмена было плохой идеей. Заметили, что ОС / AV иногда распознают «опасную» операцию, что приводит к сбою приложения

Все еще выглядишь другой / лучший RTB (бесплатный) компонент ...

EDIT-2

Я нашел рабочее решение здесь: Вставить изображение в положение курсора в поле расширенного текста

Но все еще не доволен на 100%, потому что качество изображения теряется

1 Ответ

0 голосов
/ 09 апреля 2019

После нескольких часов поиска в Google и тестирования, кажется, я наконец нашел способ избежать копирования / вставки.

Ниже ссылки спасибо Я нашел мои ответы:

https://www.codeproject.com/Articles/30902/RichText-Builder-StringBuilder-for-RTF

https://github.com/axuno/SmartFormat/tree/master/src/SmartFormat.Demo/ThirdParty/RTFLib

https://www.bbsmax.com/A/RnJW28Dozq/

...