Windows窗体应用程序中的HTML电子邮件编辑器
我们正在寻找适用于Windows应用程序(vb.net或者c#)的WYSIWYG编辑器控件,以便用户可以在发送之前设计HTML电子邮件(使用点网框架中的SMTP对象发送)。
当前,我们可以找到的所有可都存在以下问题之一:
a)他们依靠mshtml.dll或者Web浏览器控件,这被证明对我们来说是不可靠的,因为html代码和编辑器在Windows 2000(IE6)下不同步
b)它们是基于Web的,而不是Windows窗体控件
c)它们将样式放置在文档的开头(请参见下面的注释)。
不幸的是,由于这篇HTML电子邮件文章不支持使HTML电子邮件与样式一起使用的唯一确定的方法是内联使用它们,现在似乎许多编辑器都不支持它们。
是否有人对此有任何经验或者可以提出解决方案?
解决方案
回答
对于我正在处理的Windows Forms项目,我还需要一个WYSIWYG编辑器。我写了关于我在这里找到的物品的文章。最终,我最终使用了在CodeProject上找到的东西:一个基于Windows Forms的文本编辑器,带有HTML输出。这确实违反了上面的(a),因为它使用了WebBrowser控件。但是,我找不到任何不能做到这一点的好东西(如果我们不以某种方式使用WebBrowser,那么我们基本上必须纠正自己的HTML解析器和渲染器,才能处理" What-You-参见"所见即所得"部分)。关于此控件的好处是,源很容易自定义,因此我们可以删除并根据需要添加格式选项(如果我们希望所有样式都内联,也可以执行此操作)。
回答
我一直在使用它,它比WebBrowser的要低一些,但仍然使用MSHTML,它确实吐出了一些难看的HTML。就我的目的而言,我正在使用WYSIWYG和HTML编辑模式(使用ICSharp.TextEditor)和Buffer类进行多标签编辑器,以在标签更改时进行更新。作为该Buffer类的一部分,我实际上通过HTML Tidy和一些scrub-n-replace位运行HTML,以获得有效的XHTML。
我之所以仅将其作为解决方案,是因为我也未能找到某种不是从MSHTML派生而来的解决方案,而最终只是继续使用上述解决方案以继续前进。
回答
nikhil的源代码提供了一个不错的解决方案。我前一段时间下载了这个小组件,我认为它使用MSHTML。但是我不确定。源可以在这里下载。让我知道是否有帮助:)
回答
我们没有提到我们是否愿意为控件付费,但是如果我们愿意,我建议我们使用Actipro SyntaxEditor。
回答
我使用了a)和b)的组合
:-)
我在网络编辑器中使用了mshtml和tinymce的包装器...
http://peitor.blogspot.com/2007/12/great-windows-forms-html-control.html
包括屏幕截图。
我认为我们应该尝试该控件。
回答
与其搜索HTML编辑器,不如考虑使用RichText编辑器(可以更轻松地创建),然后将最终文本转换为HTML文档。
只要我们需要使用最少的功能集(粗体/斜体等),创建RT编辑器以及将最终文档转换为HTML格式都不难。
另一方面,如果我们需要使用更多功能(例如表格),则需要研究RTF格式并实现所需的功能。
其他资源:
- 将RTF转换为HTML:http://www.codeproject.com/KB/vb/RTFToHTML.aspx
- RichTextBox提示和技巧:http://www.vbforums.com/showthread.php?t=355994
回答
有一个用于.NET的HTML编辑控件(披露:是我写的)。
它不依赖任何网络浏览器;这是Windows窗体控件;并且可以处理style =
属性。
这并不是我们想要的:因为它是为WYSIWYM设计的,所以工具栏没有用于编辑内联样式的按钮(尽管其渲染引擎将呈现内联样式),因此该工具栏仅允许我们指定诸如<p>之类的块级元素和
<h1>和
<ul>和
<table>`;但是如果我们愿意,可以向我询问有关添加功能的信息(如"开发新功能"部分中所述)。