Я пытаюсь создать форматированный текст DataGridViewCell. Я могу разместить RichTextBox в качестве элемента управления редактированием, но когда ячейка не находится в режиме редактирования, мне нужно самому нарисовать форматированный текст. Я не хочу анализировать текст — мне просто нужен эквивалент Graphics.DrawString, который работает с форматированным текстом.
Как преобразовать форматированный текст в изображение?
Ответы (2)
Вот пример, где вы можете добавить функцию печати в RichTextBox. По сути, это просто копирование форматированного текста в объект Graphics, используемый для печати. Я думаю, вы могли бы изменить это, чтобы вместо этого использовать свой собственный графический объект и в основном «печатать» изображение.
Редактировать:
Вот сообщение, где кто-то, кажется, изменил код печати для создания изображения.
person
Jon B
schedule
12.05.2009
Вот такой ответ я бы дал. Я использовал аналогичный подход с пользовательским древовидным представлением, чтобы дважды буферизовать его, и он прекрасно работает.
- person Jason D; 11.03.2010
Я не верю, что в WinForms есть решение, которое может сделать это за вас. Лучший подход здесь, вероятно, состоит в том, чтобы использовать RichTextBox
как для простого рендеринга, так и для редактирования, и просто заблокировать его (установить Locked
в true), когда он не находится в режиме редактирования.
person
Noldorin
schedule
12.05.2009
Элемент управления редактированием DataGridViewCell не отображается, когда ячейка не находится в режиме редактирования — мне нужно иметь возможность отображать текст, даже если у меня нет доступа к экранному экземпляру RichTextBox.
- person Simon; 12.05.2009
печать в контекст пользовательского графического устройства, созданного на основе изображения. Это родная часть winforms.
- person Jason D; 11.03.2010