Estoy creando un editor de texto para un idioma específico del dominio. Estoy usando el WPF RichTextBox
como control básico. No sé cómo incluir con gracia la numeración de líneas. ¿Alguien sabe de algún ejemplo?WPF RichTextBox para crear el editor con los números de línea
Respuesta
Crearía un control compuesto, con un panel de control de pila y bloques de texto a la izquierda que usaría para manejar la numeración de líneas. Si le preocupa el número de líneas y tiene demasiados elementos visuales, entonces podría usar un ListBox en modo virtual.
Tendría que conectarse a los diversos eventos en el RichTextBox para saber cuándo actualizar el ListBox, así como calcular el alto de cada línea, pero eso debería ser factible con el FlowDocument adjunto al RichTextBox.
No estoy seguro si me gusta esta idea: mantener las líneas de base de texto del cuadro de lista en línea con las líneas de base de RichEdit podría ser problemático (definitivamente si su formateador de código permite diferentes fuentes), pero como no tengo una alternativa, +1 –
No fui lo suficientemente inteligente como para hacer que eso funcione. No he podido averiguar cuándo se está desplazando RichTextBox, así que puedo intentar desplazar el ListBox la misma cantidad. Y, como las líneas se alargan demasiado en el RTB, automáticamente envuelve su pantalla, y debería omitir los números de línea ListBox en ese caso. –
RichText admite "protected" - uneditable - span. Puede volcar sus números de línea a medida que el texto protegido se expande como parte de la secuencia RTF (cuando realiza el formateo).
En Win Forms, puede usar RichTextBox.SelectionProtected Property. WPF debe tener algo similar.
De esta manera, todas las líneas base serán correctas y no tendrá que pensar ni programar para que el editor se comporte correctamente. El texto editable será editable y los números de línea no serán editables.
El único inconveniente es que tiene que volver a enviar la secuencia RTF después de cada edición. Pero imagino que ya estabas haciendo esto para proporcionar el formato de parseo/diagnóstico de error/lo que sea.
¿Qué le parece usar el control WPF de texto enriquecido de AqiStar? AqiStar.TextBox
No trabajo para ellos ... Solo sé que Oren está usando este producto en su NHibernate Profiler (NHProf) y parece que lo está cavando.
Desafortunadamente, mi empleador no nos permite incluir el software que tenemos que licenciar en nuestra solución. –
AvalonEdit es bueno, y es de código abierto. Creo que tiene casi todas las características del control Aqistar, como resaltado de sintaxis y plegado. Facilidad de configuración y uso. Se pueden encontrar más detalles here.
- 1. ¿Puedo ver los números de línea en el editor VS2010?
- 2. WPF richTextBox pregunta
- 3. ¿Cómo crear un editor de formas WPF?
- 4. WPF RichTextBox SelectionChanged Rendimiento
- 5. Calcular desplazamiento para ScrollToVerticalOffset desde el número de línea en un WPF RichTextBox
- 6. Resalte línea actual de RichTextBox
- 7. WPF RichTextBox sin ancho establecido
- 8. Entrada de línea de comandos de análisis para los números
- 9. Desactivar la selección richtextbox wpf
- 10. Cómo mostrar el número de una línea en un RichTextBox C#
- 11. WPF RichTextBox anexando texto de color
- 12. Editor de texto con resaltado de sintaxis y números de línea?
- 13. Números de línea y columna actuales en un RichTextBox en una aplicación Winforms
- 14. Recomendaciones para crear una ventana de registro en WPF
- 15. ¿Alinea a la derecha los números de línea con el modo de línea?
- 16. ¿Cómo evalúa PHP() los números de línea?
- 17. ¿Por qué nos molestamos con los números de línea?
- 18. Crear texto/editor de código desde cero
- 19. Rubymine: habilite los números de línea
- 20. cómo crear un editor de javascript en línea?
- 21. ¿Cómo mostrar los números de línea por defecto en SciTE?
- 22. Revisión ortográfica multilingüe en WPF richtextbox
- 23. ¿Cómo crear el editor para la vista de la base de datos (con combinaciones) en Windows Forms/WPF?
- 24. Configuración Visual Studio 2005 para imprimir los números de línea
- 25. Números de línea con el kit de herramientas de plantilla
- 26. WPF RichTextBox - El método ScrollToEnd() no causa ningún desplazamiento
- 27. Diferencia entre Textbox y RichTextbox wpf?
- 28. C#/WPF: Deshabilitar ajuste del texto de RichTextBox
- 29. ¿Cómo se alternan los colores de línea para un Winforms RichTextBox?
- 30. contextual Editor de texto en WPF
No era lo suficientemente inteligente como para hacer que funcione. No he podido averiguar cuándo se está desplazando RichTextBox, así que puedo intentar desplazar el ListBox la misma cantidad. Y, como las líneas se alargan demasiado en el RTB, automáticamente envuelve su pantalla, y debería omitir los números de línea ListBox en ese caso. –