C#Webbrowser编辑模式:按“ Enter”进入新段落

时间:2019-04-03 22:32:15

标签: c# mshtml

我有一个WPF小应用程序,它结合使用webbrowser-control和mshtml作为html编辑器。到目前为止,效果确实很好,但是: 当我按下“ Enter”键时,Web浏览器将一个新段落

添加到mshtml文档中。我需要一个简单的换行符,因为段落的行间距太大。有人知道我如何获得这种效果吗?

<WebBrowser Name="wbbHTMLeMail" PreviewKeyDown="WbbHTMLeMail_PreviewKeyDown"/>

wbbHTMLeMail.NavigateToString(CurrentEmail.Body);
doc = wbbHTMLeMail.Document as HTMLDocument;
doc.designMode = "ON";
wbbHTMLeMail.PreviewKeyDown += WbbHTMLeMail_PreviewKeyDown;

我试图捕获PreviewKeyDown事件,但是我不知道如何将换行符插入mshtml文档中。 一种尝试是做这样的事情:

 private void WbbHTMLeMail_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                var sText = doc.selection.createRange();
                sText.execCommand("Paste", false, "</br>");
                e.Handled = true;
            }
}

但是那没有用,它只将“ / br>”作为纯文本插入。 有没有人知道如何在按Enter键时仅获得简单的换行符?

1 个答案:

答案 0 :(得分:0)

我将推荐这个:

private void WbbHTMLeMail_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                var sText = doc.selection.createRange();
                sText.execCommand("Paste", false, Environment.NewLine);
                e.Handled = true;
            }
}