Pregunta

Tengo el requisito de crear una aplicación que abra unos archivos de registro de 10 mb y resalte ciertas expresiones.

Pensé que usar WPF y richtextbox funcionarían, pero el tiempo de lectura de richtextbox es inaceptable.

¿Hay algo que tenga richtextbox como resaltar, pero tenga un mejor rendimiento?

¿Hay alguna otra forma de lograr esto?

¿Fue útil?

Solución

Scintilla http://www.scintilla.org/ se utiliza como un cuadro para editar el código. Proporciona resaltado para muchas sintaxis de código diferentes. Es posible que pueda usarlo y especificar las partes que necesita resaltar.

Otros consejos

Si no necesita permitir que el usuario edite los registros, puede salirse con la suya usando TextBlock y ajustar las secciones que se resaltarán en las etiquetas <Style> que realzan el resaltado.

¿Cómo está generando su documento Flow? Dependiendo de lo que esté haciendo, puede acelerarlo. Sin embargo, también me he encontrado con estos problemas, especialmente porque tiene para generar el FlowDocument en el hilo de la interfaz de usuario y si tarda demasiado, terminará con una pantalla en negro.

Si entiendo lo que estás diciendo, quieres una sintaxis que resalte el control RTB. Mi favorito personal es el control AvalonEdit, (Aquí hay un artículo sobre el proyecto de código al respecto: http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor ) que puede resaltar la sintaxis como el editor en Visial Studio. Incluso tiene autocompletado, que encantará a sus usuarios finales.

Si desea algo más, también está el editor de Código ICSharp. (Aquí hay otro artículo sobre codeproject al respecto: http://www.codeproject.com/ Articles / 30936 / Using-ICSharpCode-TextEditor ) Este tiene las mismas características que AvalonEdit, y también me gusta. De hecho, utilicé el editor de código ICSharp en una aplicación que hice, y quedé bastante satisfecho con las características.

Por lo que sé, ambos controles son muy eficientes y serían mejores que un simple cuadro de texto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top