Der einfachste Weg wäre, den RTF-Code zu ändern, um das Bild selbst einzufügen.
In RTF, ein Bild wie folgt definiert ist:
'{' \ PICT (??? Brdr & Schattierungs & picttype & pictsize & metafileinfo) data '}' Ein Fragezeichen gibt das Steuerwort ist, wahlweise. "Daten" ist einfach der Inhalt der Datei im Hex-Format. Wenn Sie eine Binärdatei verwenden möchten, verwenden Sie das Steuerwort \ bin.
Zum Beispiel:
{\pict\pngblip\picw10449\pich3280\picwgoal5924\pichgoal1860 hex data}
{\pict\pngblip\picw10449\pich3280\picwgoal5924\pichgoal1860\bin binary data}
\ pict = startet eine Bildgruppe, \ pngblip = PNG-Bild \ picwX = Breite des Bildes (X ist der Pixelwert) \ pichX = Höhe der Bild \ picwgoalX = gewünschte Breite des Bildes in Twips
Also, um ein Bild einzufügen, müssen Sie nur Ihr Bild öffnen, konvertieren Sie die Daten in hex, laden Sie diese Daten in eine Zeichenfolge und fügen Sie die RTF-Codes um um ein RTF-Bild zu definieren. Jetzt haben Sie eine eigenständige Zeichenfolge mit Bilddaten, die Sie in den RTF-Code eines Dokuments einfügen können. Sie nicht die Schließung vergessen „}“
Als nächst Sie den RTF-Code von Ihrem RichTextBox (rtbBox.Rtf) zu erhalten, setzen Sie das Bild an der richtigen Stelle, und stellen Sie den Code von rtbBox.Rtf
One Problem kann sein, dass .NET RTB den RTF-Standard nicht sehr gut unterstützt.
Ich habe gerade eine kleine Anwendung * gemacht, die Ihnen erlaubt, schnell einige RTF-Code in einem RTB zu testen und zu sehen, wie es damit umgeht. Sie können es hier herunterladen: RTB tester (http://your-translations.com/toys).
Sie können einige RTF-Inhalte (z. B. aus Word) in das linke RTF-Feld einfügen und auf "RTF-Codes anzeigen" klicken, um die RTF-Codes im rechten RTF-Feld anzuzeigen, oder RTF-Code in das RTF-Feld einfügen rechts RTB und klicken Sie auf "RTF-Codes anwenden", um die Ergebnisse auf der linken Seite zu sehen.
Sie können natürlich die Codes bearbeiten, wie Sie möchten, was es recht bequem macht, zu testen, ob die RichTextBox die von Ihnen benötigten Befehle unterstützt oder nicht, oder wie Sie die RTF-Steuerwörter verwenden.
Sie können eine vollständige Spezifikation für RTF online herunterladen.
NB Es ist nur eine kleine Sache, die ich zusammen in 5 Minuten geschlagen, so dass ich nicht Datei öffnen implementieren oder speichern, per Drag & Drop oder andere zivilisierte Sachen.
Ich konnte RTB nicht zeigen, PNGs, aber zumindest zeigt es WMF. –
1 "Twip" = 1/20 eines Punktes. 1 Punkt ~ 1.333 Pixel (das hängt von der Bildschirmauflösung ab; die meisten Monitore haben heute 96 Pixel pro Zoll in ihrer nativen Auflösung, so dass dies gilt) – KeithS