Winforms html editor
Кто-нибудь знает хороший бесплатный редактор html winforms для .NET. В идеале я бы хотел html и режимы предварительного просмотра наряду с возможностью экспорта в pdf, word doc или аналогичный.
Хотя экспорт я мог бы, вероятно, создать себя из вывода html.
Еще одна приятная особенность - это вставка из слова, которая удаляет все лишние теги, которые вы обычно заканчиваете, но опять же приятно, что не требуется.
Ответы
Ответ 1
Вы можете использовать элемент управления WebBrowser в режиме разработки со вторым набором элементов управления WebBrowser в режиме просмотра.
Чтобы установить элемент управления WebBrowser в режиме разработки, вы можете использовать следующий код.
Этот код является сверхразделенной версией редактора WYSIWYG для одного из наших программных продуктов.
Просто создайте новую форму, опустите на нее элемент управления WebBrowser и поместите это в form_load
Me.WebBrowser1.Navigate("about:blank")
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
Ответ 2
Я рассматриваю возможность использования Writer Lutz Roeder (славы Reflector). Основной редактор Html, полностью написанный на С#, предоставляется как есть с исходным кодом. Ищите его на http://www.lutzroeder.com/dotnet/
Ответ 3
//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;
Ответ 4
SpiceLogic.NET Win HTML Editor Control, а не бесплатно, но он охватывает все, что вы ищете. Особенно, функция Вставить из MS word действительно эффективна. Нажатие этой кнопки MS Word Paste вставляет содержимое из буфера обмена в редактор и очищает теги, специфичные для слов ms, и генерирует чистый XHTML. Если MS Word содержит некоторые изображения, этот редактор также будет обнаруживать эти изображения, а выходной XHTML будет содержать тег изображения с правильными путями для этих изображений.
https://www.spicelogic.com/Products/NET-Win-HTML-Editor-Control-8
![enter image description here]()
Ответ 5
см. http://www.maconstateit.net/tutorials/JSDHTML/JSDHTML12/jsdhtml12-02.htm для образца HTML edtior, который использует редактирование surport в IE.
http://www.mozilla.org/editor/midasdemo/ и http://starkravingfinkle.org/blog/wp-content/uploads/2007/07/contenteditable.htm также работает в IE и дает примеры того, как делать панель инструментов, шрифты, жирный шрифт, курсив и т.д.
Посмотрите на эти вопросы для моего опыта, когда я попытался сделать что-то вроде этого.
У меня также было много другой проблемы, в том числе нужно написать логику изменения размера в jscript, чтобы получить размер редактора HTML, а также форму WinForm и передать цвета формы /coontrol по умолчанию в HTML-редактор, чтобы он выглядел затем пользователи изменили цветовые схемы в Windows.
Поэтому, если мне нужно сделать это снова, я бы использовал сторонний редактор HTML (бесплатный или платный)