Как преобразовать форматированный текст в изображение?

Я пытаюсь создать форматированный текст DataGridViewCell. Я могу разместить RichTextBox в качестве элемента управления редактированием, но когда ячейка не находится в режиме редактирования, мне нужно самому нарисовать форматированный текст. Я не хочу анализировать текст — мне просто нужен эквивалент Graphics.DrawString, который работает с форматированным текстом.


person Simon    schedule 12.05.2009    source источник


Ответы (2)


Вот пример, где вы можете добавить функцию печати в RichTextBox. По сути, это просто копирование форматированного текста в объект Graphics, используемый для печати. Я думаю, вы могли бы изменить это, чтобы вместо этого использовать свой собственный графический объект и в основном «печатать» изображение.

Редактировать:

Вот сообщение, где кто-то, кажется, изменил код печати для создания изображения.

person Jon B    schedule 12.05.2009
comment
Вот такой ответ я бы дал. Я использовал аналогичный подход с пользовательским древовидным представлением, чтобы дважды буферизовать его, и он прекрасно работает. - person Jason D; 11.03.2010

Я не верю, что в WinForms есть решение, которое может сделать это за вас. Лучший подход здесь, вероятно, состоит в том, чтобы использовать RichTextBox как для простого рендеринга, так и для редактирования, и просто заблокировать его (установить Locked в true), когда он не находится в режиме редактирования.

person Noldorin    schedule 12.05.2009
comment
Элемент управления редактированием DataGridViewCell не отображается, когда ячейка не находится в режиме редактирования — мне нужно иметь возможность отображать текст, даже если у меня нет доступа к экранному экземпляру RichTextBox. - person Simon; 12.05.2009
comment
печать в контекст пользовательского графического устройства, созданного на основе изображения. Это родная часть winforms. - person Jason D; 11.03.2010