WPF пишет html в текстовое поле - PullRequest
1 голос
/ 12 апреля 2011

Я работаю над приложением WPF для Windows, используя код C #.Это приложение, которое я унаследовал.У меня ограниченный опыт использования WPF.У меня есть элемент управления Rich Text Box, который используется для создания электронной почты с использованием HTML.Существует код для чтения содержимого Rich Text Box и сохранения результатов в виде HTML в базе данных.Этот код работает.Мне нужно написать реверс, который пишет HTML в поле расширенного текста, чтобы он отображался как текст.

Ниже приведен код, который я должен прочитать в поле расширенного текста.

 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);

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Чтобы сохранить содержимое RichTextBox в обычную строку, которую можно сохранить в базе данных:

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

Чтобы перезагрузить RichTextBox из строки:

EmailBodyRichTextBox.Document = XamlReader.Parse(formattedEmail);

Если вы хотите только сохранить электронные письма в базе данных, а затем повторно загрузить их в RichTextBoxes, нет смысла конвертировать в HTML, это может привести только к несоответствию формата преобразования.

0 голосов
/ 12 апреля 2011

Похоже, что из кода, который вы публикуете выше, вы сохраняете текст в поле расширенного текста в xaml, а затем переводите xaml в HTML.

если вы хотите повернуть вспять, затем переведите HTML в xaml, а затем загрузите его в поле расширенного текста.

...