c# .net html winforms

c# - editor html winforms



.net (5)

Alguien sabe de un buen editor gratuito de html winforms para .NET. Lo ideal sería que quisiera html y modos de vista previa junto con la posibilidad de exportar a un pdf, Word Doc o similar.

Aunque la exportación probablemente podría crearme desde la salida html.

Otra característica interesante sería un pegado de una palabra que elimina todas las etiquetas adicionales con las que normalmente termina pero, una vez más, es bueno no tenerlas.


Estoy considerando usar Writer por Lutz Roeder (de la fama de Reflector). Un editor de Html básico escrito completamente en C #, provisto tal como está con el código fuente. Búsquelo en http://www.lutzroeder.com/dotnet/


Puede utilizar el control WebBrowser en modo de diseño con un segundo control WebBrowser configurado en modo de visualización.

Para poner el control WebBrowser en modo de diseño, puede usar el siguiente código.

Este código es una versión muy simplificada de un editor WYSIWYG para uno de nuestros productos de software.

Simplemente cree un formulario nuevo, coloque un control WebBrowser en él y colóquelo en la 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


SpiceLogic .NET WinForms HTML Editor Control, no gratuito, pero cubre todo lo que está buscando. Especialmente, la función Pegar a partir de MS Word es realmente eficiente. Al hacer clic en el botón Pegar de MS Word, se pegará el contenido del Portapapeles en el Editor, se limpiarán las etiquetas específicas de la palabra ms y se generará XHTML limpio. Si MS Word contiene algunas imágenes, este editor detectará esas imágenes también y el resultado XHTML contendrá la etiqueta de la imagen con las rutas correctas para esas imágenes.

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


ver http://www.maconstateit.net/tutorials/JSDHTML/JSDHTML12/jsdhtml12-02.htm para un edtior HTML de muestra que hace uso de la información de edición en IE.

http://www.mozilla.org/editor/midasdemo/ y http://starkravingfinkle.org/blog/wp-content/uploads/2007/07/contenteditable.htm también funciona en IE y brinda ejemplos de cómo hacer una barra de herramientas, para fuentes, negrita, cursiva, etc.

Vea estas preguntas para mi experiencia cuando intenté hacer algo así.

También tuve muchos otros problemas, incluyendo escribir la lógica de cambio de tamaño en jscript para obtener el tamaño del editor HTML junto con el formulario WinForm y tener que pasar los colores predeterminados de formulario / coontrol al editor HTML para que pareciera escribirse y luego los usuarios cambiaran esquemas de color en Windows.

Por lo tanto, si necesito hacer esto de nuevo, usaría un editor HTML de terceros (gratuito o pago)


//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;