Existem quaisquer substituições livres de código aberto para um richtextbox no WPF?
-
05-07-2019 - |
Pergunta
Eu tenho um requisito para criar um aplicativo que irá abrir cerca de 10 mb arquivos de log e destacar certas expressões.
Eu pensei usando WPF e richtextbox vai funcionar, mas o richtextbox tempo rasgando é inaceitável.
Existe alguma coisa que tem richtextbox como destacando, mas tem melhor desempenho?
Há alguma outra maneira de conseguir isso?
Solução
http://www.scintilla.org/ é usado como uma caixa de edição de código. Ele fornece destacando para muitos sintaxe de código diferente. Você pode ser capaz de usá-lo e especificar as partes que precisam destacados.
Outras dicas
Se você não precisa permitir que o usuário editar os registros que você pode ser capaz de fugir com o uso de um TextBlock e enrole as seções a ser destacado em tags <Style>
que realizam o destaque.
Como você está gerando sua FlowDocument - dependendo do que você está fazendo, você pode ser capaz de acelerá-lo. No entanto, eu também tenho que correr para estas questões, especialmente porque você Have para gerar o FlowDocument no segmento interface do usuário e se leva muito tempo você acaba com uma tela preta.
Se eu entendo o que você está dizendo, você quer um destaque de sintaxe controle de RTB. O meu favorito é o controle AvalonEdit, (Aqui está um artigo sobre codeproject sobre isso: http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor ) que pode sintaxe destaque como o editor em visial Studio. Ele ainda tem autocomplete, que seus usuários finais vão adorar.
Se você quiser algo mais, há também o editor Código ICSharp. (Aqui está um outro artigo sobre codeproject nisso: http://www.codeproject.com/ artigos / 30936 / Usando-ICSharpCode-TextEditor ) esta muito bonito tem as mesmas características que AvalonEdit, e eu como este também. Eu realmente utilizados editor Código ICSharp em um aplicativo que eu fiz, e foi muito satisfeito com os recursos.
Tanto quanto eu sei, ambos os controles são muito eficientes, e seria melhor do que apenas um richtextbox.