Я не знаю такой библиотеки, но у меня есть кое-какие мысли для вас.
Первый большой вопрос, который у меня возникает, заключается в том, почему вы хотите использовать что-то примитивное, такое как Markdown, когда вы можете использовать RichTextBox. Уценка требуется для StackOverflow и подобных сайтов из-за ограничений браузера. Но если ваше приложение WPF, это не проблема.
Одно из предположений о том, почему вы можете захотеть сделать это, заключается в том, что вы хотите, чтобы ваши документы были редактируемыми как в WPF, так и в веб-приложении с наименьшим общим знаменателем. В этом случае вам понадобится механизм, который все равно отображает уценку в HTML, так почему бы не использовать этот же механизм для преобразования уценки в XAML?
Преобразование произвольного HTML в XAML очень сложно, но преобразование вида HTML, который выполнил бы конвертер Markdown, - это совсем другой вопрос. Большинство конверторов в стиле Markdown выделяют только несколько простых HTML-тегов, каждый из которых легко конвертируется в эквивалентный XAML.
Если вы используете конвертер Markdown-to-HTML, он сделает все для вас очень тяжелым (анализ текста и т. Д.) И предоставит вам XML-подобный документ (точнее, HTML), который относительно легко разобрать. Кроме того, если вы используете конвертер Markdown-to-HTML в другом месте, вы будете уверены, что ваш синтаксический анализатор Markdown проанализирует ваш синтаксис Markdown точно так же, как для HTML, так и для XAML, поскольку он будет одинаковым в каждом случае.
Итак, в основном я думаю:
string html = MarkdownEngine.MarkdownToHtml(markdown);
string xaml = MarkdownHtmlToXamlTranslator.HtmlToXaml(html);
Где вы разрабатываете свою реализацию MarkdownHtmlToXamlTranslator вокруг того, что фактически выдает механизм уценки. Это может быть очень простой XSLT, или вы можете использовать LINQ to XML вместе с методами построения XDocument. В любом случае это должен быть очень маленький кусочек кода.