Winforms HTML-редактор - PullRequest
       31

Winforms HTML-редактор

30 голосов
/ 18 октября 2008

Всем известен хороший бесплатный HTML-редактор winforms для .NET. В идеале я хотел бы, чтобы html и режимы предварительного просмотра наряду с возможностью экспорта в PDF, Word DOC или подобное.

Хотя экспорт я, вероятно, мог бы создать самостоятельно из вывода html.

Еще одна полезная функция - вставка из слова, которая удаляет все лишние теги, с которыми вы обычно сталкиваетесь, но, опять же, это хорошо, когда не требуется.

Ответы [ 5 ]

27 голосов
/ 18 октября 2008

Вы можете использовать элемент управления WebBrowser в режиме конструктора со вторым элементом управления WebBrowser, установленным в режиме просмотра.

Чтобы перевести элемент управления WebBrowser в режим разработки, вы можете использовать следующий код.

Этот код является упрощенной версией редактора WYSIWYG для одного из наших программных продуктов.

Просто создайте новую форму, поместите на нее элемент управления WebBrowser и поместите ее в форму. Загрузка:

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
9 голосов
/ 22 сентября 2011
//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;
6 голосов
/ 22 июля 2009

Я подумываю об использовании Writer от Lutz Roeder (слава Reflector). Базовый редактор HTML, полностью написанный на C #, поставляется с исходным кодом как есть. Ищите это в http://www.lutzroeder.com/dotnet/

2 голосов
/ 30 июня 2012

SpiceLogic .NET WinForms HTML Editor Control, не бесплатный, но охватывает все, что вы ищете. В частности, функция Вставка из MS word действительно эффективна. Нажав на эту кнопку MS Word Paste, вы вставите содержимое из буфера обмена в редактор, очистите специальные теги MS Word и сгенерируйте чистый XHTML. Если MS Word содержит несколько изображений, этот редактор также обнаружит эти изображения, и в выходной XHTML будет добавлен тег изображения с правильными путями для этих изображений.

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

enter image description here

0 голосов
/ 29 января 2009

см. http://www.maconstateit.net/tutorials/JSDHTML/JSDHTML12/jsdhtml12-02.htm для примера редактора HTML, который использует 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 (бесплатный или платный)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...