0

Есть html примерно такого вида(может быть и другой).

"<strong>Информация</strong><br><br>еще текст<br>Опять какая то информация"

Я хочу брать текст из тегов, и исходя из тегов давать тексту стиль. Как это реализовать в WPF стандартными контролами? Если нельзя, то как создать кастомный.

Мне нужно не только распарсить, а еще как то применить стиль в зависимости от того, что в HTML. p.s это для тех кто закрывает вопрос

0xdb
  • 51,614
Tynett
  • 99
  • 1
  • 5
  • Для отображения HTML в WPF есть контролы-браузеры. – aepot May 24 '22 at 10:14
  • 1
    https://docs.microsoft.com/ru-ru/microsoft-edge/webview2/get-started/wpf – aepot May 24 '22 at 10:39
  • Можете сделать свой парсер и юзерконтрол. Парсите html и получаете список: <strong>Text</strong>, <br>, <br>. Сделать промежуточный класс который имеет свойства текста, шрифты, фонты, аттрибуты html. Его уже путем преобразования можно накидать всякие font-ы, бордеры итп в WPF контроле. Ну и некоторые элементы типа <br> заменяете на Environment.NewLine – Aarnihauta May 24 '22 at 10:45
  • Ну полное преобразование сделать нереально. С нуля же тоже морока. Ищите разные WPF RichTextBox + html или WPF Html Editor вроде такого – vitidev May 24 '22 at 10:57
  • это эдитор, а мне нужен textblock воспринимающий html – Tynett May 24 '22 at 11:53
  • Текстблоков, воспринимающих HTML, не существует, как минимум потому что для этого есть браузер, который легко встраивается в приложение. Считайте, что браузер - это и есть тот самый контрол, который понимает HTML. Если это вам не подходит, то я не понимаю, почему. – aepot May 24 '22 at 13:57
  • потому что когда таких браузеров 500-700(а именно столько текстов html должно быть), приложение жрет много памяти – Tynett May 24 '22 at 14:03
  • Зачем пользовтелю одновременно смотреть 500-700 текстов? Они на экран же не влезут. Если вам нужно что-то очень простое, то достаточно распарсить HTML в объектную модель, любым парсером и на ее основе собрать TextBlock https://stackoverflow.com/a/5263094/12888024 – aepot May 24 '22 at 14:11

0 Answers0