html邮件回复消息编辑器,Windows窗体应用程序中的HTML电子邮件编辑器

在一个

WebBrowser

控制。它内置了对常见html文本编辑功能的支持,如:

Ctrl键

B

将选定内容加粗

Ctrl键

+

使所选内容倾斜

Ctrl键

+

将所选内容加下划线

Ctrl键

+

选择所有文本

Ctrl键

+

C

复制选择的步骤

Ctrl键

+

剪切所选内容

+

Ctrl键

+

插入链接的步骤

但是,为了获得更好的用户体验,可以依赖DOM

document

WebBrower

使用它的

execCommand

方法和容易运行的命令

Bold

,

Italic

,

Underline

,

InsertOrderedList

,

InsertUnorderedList

InsertImage

,

FormatBlock

,

ForeColor

,

BackColor

,等等。

webBrowser1.Document.ExecCommand("InsertOrderedList", false, null);

Examlpe-Windows窗体HTML编辑器

在这里,我将分享一个C应用程序的示例,并向您展示如何轻松实现HTML编辑器。

UmYhp.png

public class HtmlEditor

{

WebBrowser webBrowser;

private dynamic doc;

private dynamic contentDiv;

public HtmlEditor(WebBrowser webBrowserControl, string htmlContent)

{

webBrowser = webBrowserControl;

webBrowser.DocumentText = @"

webBrowser.DocumentCompleted += (s, e) =>

{

doc = webBrowser.Document.DomDocument;

contentDiv = doc.getElementsByTagName("div")[0];

contentDiv.innerHtml = htmlContent;

};

}

public string HtmlContent => contentDiv.InnerHtml;

public void Bold() { doc.execCommand("bold", false, null); }

public void Italic() { doc.execCommand("italic", false, null); }

public void Underline() { doc.execCommand("underline", false, null); }

public void OrderedList() { doc.execCommand("insertOrderedList", false, null); }

public void UnorderedList() { doc.execCommand("insertUnOrderedList", false, null); }

public void ForeColor(Color color)

{

doc.execCommand("foreColor", false, ColorTranslator.ToHtml(color));

}

public void BackColor(Color color)

{

doc.execCommand("backColor", false, ColorTranslator.ToHtml(color));

}

public void InsertImage(Image image)

{

var bytes = (byte[])new ImageConverter().ConvertTo(image, typeof(byte[]));

var src = $"data:image/png;base64,{Convert.ToBase64String(bytes)}";

doc.execCommand("insertImage", false, src);

}

public void Heading(Headings heading)

{

doc.execCommand("formatBlock", false, $"");

}

public enum Headings { H1, H2, H3, H4, H5, H6 }

}

要使用这个HTML编辑器类,只需

控件

控制

Form

并按以下方式初始化编辑器:

HtmlEditor editor;

private void Form1_Load(object sender, EventArgs e)

{

var html = @"Some html content";

editor = new HtmlEditor(webBrowser1, html);

}

然后你可以使用

ToolStrip

显示可用命令并运行命令。例如:

private void OrderedListButton_Click(object sender, EventArgs e)

{

editor.OrderedList();

}

private void ImageButton_Click(object sender, EventArgs e)

{

using (var ofd = new OpenFileDialog())

{

ofd.Filter = "Image files|*.png;*.jpg;*.gif;*.jpeg;*.bmp";

if (ofd.ShowDialog() == DialogResult.OK)

{

using (var image = Image.FromFile(ofd.FileName))

{

editor.InsertImage(image);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值