Ich habe eine Rich Text Box in einer meiner Anwendungen (WPF). Jetzt möchte ich die Daten der Rich-Text-Box speichern zusammen mit seiner Formatierung (z. B. fett, farbig usw.) in eine Datenbank (SQL Server). Derzeit speichere ich die gesamte XAML des Textfeldes in einem Datenbankfeld. Ich bin mir jedoch nicht sicher, ob dies der richtige Ansatz ist. Ich freue mich auf Ihre Vorschläge!
Antwort
Zu viele Anzeigen?Eine Alternative besteht darin, die Daten im RTF-Format zu speichern, das etwas kompakter ist als Xaml und den zusätzlichen Vorteil bietet, dass es leicht in andere Anwendungen importiert werden kann, die Xaml nicht parsen können:
string GetContentAsRTF(RichTextBox rtb)
{
var range = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
using (var stream = new MemoryStream())
using (var reader = new StreamReader(stream))
{
range.Save(stream, DataFormats.Rtf);
stream.Position = 0;
return reader.ReadToEnd();
}
}