Windows窗体的WYSIWYG Markdown控件?

Sör*_*lau 7 html markdown components winforms

[我们有一个Windows Forms数据库前端应用程序,除其他外,可以用作CMS; 客户端创建结构,填充它,然后使用基于ASP.NET WebForms的站点在Web上公开显示结果.为了增加灵活性,有时会强制它们将实际HTML标记直接输入到文本字段中,然后最终作为数据库中的varchar.这有效,但它远非用户友好.]

因此......一些客户想要一个用于HTML的WYSIWYG编辑器.我想说服他们,他们会从使用更简单的语言(即Markdown)中受益.理想情况下,我想要的是一个WYSIWYG编辑器.他们不需要桌子,也不需要任何复杂的桌子.

粗略搜索显示.NET Markdown到HTML转换器,然后我们有一个基于Windows窗体的文本编辑器输出HTML,但显然没有任何东西将两者结合在一起.因此,我们仍然会在其中添加带有标记的varchars,但至少它既具有人类可读性,又易于解析.

这是否 - 输出Markdown的WYSIWYG编辑器,后来在ASP.NET中解析成HTML - 是否可行?还有其他建议吗?

Kyl*_*Mit 9

我认为最好的方法是结合

  1. 将 Markdown 转换为 HTML &
  2. 在 WinForms 中显示 HTML

最新的 Markdown 库似乎是markdig,您可以通过 nuget安装

Nuget > Markdig

一个简单的实现可能是:

  1. 一个添加SplitContainerForm控制,集Dock = Fill
  2. 添加一个TextBox,设置Dock = Fill并设置为Multiline = True
  3. 添加一个WebBrowser,设置Dock = Fill

然后处理TextChanged事件,将文本解析成html并设置成DocumentText这样:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    var md = textBox1.Text;
    var html = Markdig.Markdown.ToHtml(md);
    webBrowser1.DocumentText = html;
}
Run Code Online (Sandbox Code Playgroud)

这是一个录制的演示:

演示屏幕共享


Jar*_*ike -1

难道你不能使用我在 Stack Overflow 中使用的相同控件(我们都在其中输入)——WMD,并将 Markdown 存储在 VARCHAR 中吗?然后,如您所提到的,使用 .NET Markdown 到 HTML 转换器来根据需要显示 HTML。Jeff 在 StackOverflow 播客中更详细地讨论了这一点(不知道剧集编号)。

  • OP明确指出WINDOWS FORMS。 (3认同)