【问题标题】:winforms html editor [closed]winforms html编辑器[关闭]
【发布时间】:2010-09-17 20:47:20
【问题描述】:

任何人都知道适用于 .NET 的免费 winforms html 编辑器。理想情况下,我想要 html 和预览模式以及导出为 pdf、word doc 或类似文件的可能性。

虽然我可以从 html 输出中创建自己的导出。

另一个不错的功能是从 word 中粘贴,它可以删除您通常最终使用的所有额外标签,但再次强调它是一个不错的选择。

【问题讨论】:

    标签: c# .net html winforms


    【解决方案1】:

    如果你只需要简单地格式化一些文本,你可以在codeproject.com找到很多开源项目。

    我认为 Netrix 的功能是所有这些免费控件中最全面的。链接如下: https://github.com/joergkrause/netrix

    当然也有一些付费的商业控件,通常会提供更友好的界面和更丰富的功能,比如这个BaiqiSoft.HtmlEditor它允许我合并/取消合并单元格,调整插入表格的行高和列宽。

    【讨论】:

      【解决方案2】:

      您可以在设计模式下使用WebBrowser 控件,而在视图模式下设置第二个WebBrowser 控件。

      为了将WebBrowser控件置于设计模式,您可以使用以下代码。

      此代码是我们的一款软件产品的 WYSIWYG 编辑器的超级精简版。

      只需创建一个新表单,在其上放置一个WebBrowser 控件,然后将其放入 Form.Load:

      Me.WebBrowser1.Navigate("")
      Application.DoEvents()
      Me.WebBrowser1.Document.OpenNew(False).Write("<html><body><div id=""editable"">Edit this text</div></body></html>")
      
      'turns off document body editing
      For Each el As HtmlElement In Me.WebBrowser1.Document.All
          el.SetAttribute("unselectable", "on")
          el.SetAttribute("contenteditable", "false")
      Next
      
      'turns on editable div editing
      With Me.WebBrowser1.Document.Body.All("editable")
          .SetAttribute("width", Me.Width & "px")
          .SetAttribute("height", "100%")
          .SetAttribute("contenteditable", "true")
      End With
      
      'turns on edit mode
      Me.WebBrowser1.ActiveXInstance.Document.DesignMode = "On"
      'stops right click->Browse View
      Me.WebBrowser1.IsWebBrowserContextMenuEnabled = False
      

      【讨论】:

      • 太棒了!像这样的答案就是 SO 的全部意义所在!
      • 我已将其作为基本理念,谢谢,我正在努力通过工具栏扩展功能,用于字体、粗体、斜体...
      • Re: 另一个缺点当然是您需要在计算机上安装 IE 我将这种方法包含在 Click Once WinForm 应用程序中,我还需要包含一个 10 MB COM 互操作文件,以便 .NET 可以与 IE 对话。
      • "WebBrowser1.ActiveXInstance.Document.DesignMode" 这应该如何用 C# 重写?
      • 如果使用 .Net 4.0 使 ActiveXInstance 成为动态的。
      【解决方案3】:

      SpiceLogic .NET WinForms HTML 编辑器控件,不是免费的,但它涵盖了您正在寻找的一切。尤其是 从 MS word 中粘贴 功能非常有效。单击 MS Word 粘贴按钮会将内容从剪贴板粘贴到编辑器,并清理 ms word 特定标签并生成干净的 XHTML。如果 MS Word 包含一些图像,此编辑器也会检测这些图像,并且输出 XHTML 将包含图像标记以及这些图像的正确路径。

      https://www.spicelogic.com/Products/NET-WinForms-HTML-Editor-Control-8

      【讨论】:

        【解决方案4】:
        //CODE in C#
        webBrowser1.Navigate("about:blank");
        Application.DoEvents();
        webBrowser1.Document.OpenNew(false).Write("<html><body><div id=\"editable\">Edit this text</div></body></html>"); 
        
        foreach (HtmlElement el in webBrowser1.Document.All)
        {
            el.SetAttribute("unselectable", "on");
            el.SetAttribute("contenteditable", "false");
        }
        
        webBrowser1.Document.Body.SetAttribute("width", this.Width.ToString() + "px");    
        webBrowser1.Document.Body.SetAttribute("height", "100%");     
        webBrowser1.Document.Body.SetAttribute("contenteditable", "true");
        webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "On", null);
        webBrowser1.IsWebBrowserContextMenuEnabled = false;
        

        【讨论】:

          【解决方案5】:

          请参阅http://www.maconstateit.net/tutorials/JSDHTML/JSDHTML12/jsdhtml12-02.htm 以获取使用 IE 中的编辑支持的示例 HTML 编辑器。

          http://www.mozilla.org/editor/midasdemo/http://starkravingfinkle.org/blog/wp-content/uploads/2007/07/contenteditable.htm 也可以在 IE 中使用,并提供了如何制作工具栏的示例,用于字体、粗体、斜体等


          当我尝试这样做时,请参阅这些问题以了解我的经验。

          我还有很多其他问题,包括必须在 jscript 中编写调整大小逻辑以使 HTML 编辑器与 WinForm 表单一起调整大小,并且必须将默认表单/控制颜色传递给 HTML 编辑器以便它看起来写然后用户在 Windows 上更改了配色方案。

          因此,如果我需要再次执行此操作,我会使用第 3 方 HTML 编辑器(免费或付费)

          【讨论】:

            【解决方案6】:

            我正在考虑使用 Lutz Roeder 的 Writer(以 Reflector 闻名)。一个完全用 C# 编写的基本 Html 编辑器,按原样提供源代码。在http://www.lutzroeder.com/dotnet/寻找它

            【讨论】:

              猜你喜欢
              • 2010-10-31
              • 1970-01-01
              • 2010-11-12
              • 1970-01-01
              • 1970-01-01
              • 2011-10-17
              • 2011-07-05
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多