Самый простой способ - изменить RTF-код, чтобы вставить изображение самостоятельно.
В формате RTF, картина определяется следующим образом:
'{' \ пикт (?? Brdr & затенение & picttype & pictsize & metafileinfo) данных '}' знак вопроса указывает на то, управляющее слово необязательный. «данные» - это просто содержимое файла в шестнадцатеричном формате. Если вы хотите использовать двоичный файл, используйте управляющее слово \ bin.
Например:
{\pict\pngblip\picw10449\pich3280\picwgoal5924\pichgoal1860 hex data}
{\pict\pngblip\picw10449\pich3280\picwgoal5924\pichgoal1860\bin binary data}
\ пикт = запускает группу картинок, \ pngblip = PNG изображение \ picwX = ширина изображения (Х представляет собой значение пикселя) \ pichX = высота расположения picture \ picwgoalX = желаемая ширина изображения в twips
Итак, чтобы вставить картинку, вам просто нужно открыть свое изображение, преобразовать данные в шестнадцатеричный, загрузить эти данные в строку и добавить туда коды RTF для определения изображения RTF. Теперь у вас есть личная строка с данными изображения, которые вы можете вставить в RTF-код документа. Не забывайте о закрытии «}»
Далее, вы получите код RTF из вашего RichTextBox (rtbBox.Rtf), вставить картинку в нужном месте и установить код rtbBox.Rtf
One вы можете столкнуться с тем, что .NET RTB не имеет очень хорошей поддержки стандарта RTF.
Я только что сделал небольшое приложение *, которое позволяет вам быстро протестировать некоторый RTF-код внутри RTB и посмотреть, как он его обрабатывает. Вы можете скачать его здесь: RTB tester (http://your-translations.com/toys).
Вы можете вставить некоторый RTF-контент (например, Word) в левое поле RTF и нажать «Показать RTF-коды», чтобы отобразить RTF-коды в правом поле RTF, или вы можете вставить RTF-код в правой RTB и нажмите «Применить RTF-коды», чтобы увидеть результаты с левой стороны.
Вы можете, конечно, редактировать коды по своему усмотрению, что делает его весьма удобным для проверки того, поддерживает ли RichTextBox требуемые команды или узнает, как использовать управляющие слова RTF.
Вы можете скачать полную спецификацию для RTF онлайн.
NB Это просто немного, что я ударил вместе в течение 5 минут, так что я не выполнил файл открыть или сохранить, перетаскивание, или другой цивилизованный материал.
Я не мог заставить RTB показывать png, но по крайней мере он показывает wmf. –
1 "twip" = 1/20 точки. 1 точка ~ 1,333 пикселя (это зависит от разрешения экрана, большинство мониторов сегодня выполняют 96 пикселей на дюйм в собственном разрешении, так что это так) – KeithS