c # - WPF skrive html til en rig tekstboks

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg arbejder på en WPF Windows applikation ved hjælp af C # kode. Dette er en ansøgning jeg arvede. Jeg har kun begrænset erfaring med at bruge WPF.
Jeg har en Rich Text Box kontrol, som bruges til at opbygge en e-mail ved hjælp af html. Der er kode til at læse indholdet af Rich Text Box og gemme resultaterne som html i en database. Denne kode virker. Jeg skal skrive det omvendte, der skriver html til den rige tekstboks, så den fremstår som tekst.


Nedenfor er koden jeg skal læse den rige tekstboks.


 TextRange xaml = new TextRange(EmailBodyRichTextBox.Document.ContentStart, EmailBodyRichTextBox.Document.ContentEnd);
            MemoryStream ms = new MemoryStream();
            xaml.Save(ms, DataFormats.Xaml);
            string xamlString = ASCIIEncoding.Default.GetString(ms.ToArray());

            string html = HTMLConverter.HtmlFromXamlConverter.ConvertXamlToHtml("<FlowDocument>" + xamlString + "</FlowDocument>");

            html = HttpUtility.HtmlEncode(html);

Bedste reference


For at gemme RichTextBoxs indhold til en almindelig streng, som du kan gemme i en database:


string formattedEmail = XamlWriter.Save(EmailBodyRichTextBox.Document);


For at genindlæse RichTextBox fra strengen:


EmailBodyRichTextBox.Document = XamlReader.Parse(formattedEmail);


Hvis du kun vil gemme e-mails i databasen og derefter genindlæse dem til RichTextBoxes, er der intet tidspunkt at konvertere til HTML, det kan kun introducere konverteringsformatmatchninger.

Andre referencer 1


Fra koden du sender ovenstående synes det, at du gemmer teksten i den rige tekstboks til xaml, og derefter oversætter xaml til HTML.


hvis du vil vende om, så oversæt din HTML til xaml og derefter indlæse den i den rige tekstboks.