Sto creando un editor di testo per un linguaggio specifico del dominio. Sto usando il WPF RichTextBox
come controllo di base. Non so come includere con garbo la numerazione delle righe. Qualcuno sa di alcuni esempi?RichTextBox WPF per creare un editor con i numeri di riga
risposta
Vorrei creare un controllo composito, con un controllo del pannello stack e blocchi di testo sulla sinistra che usereste per gestire la numerazione delle righe. Se sei preoccupato del numero di linee e di troppi elementi visivi, puoi utilizzare un ListBox in modalità virtuale.
Dovresti collegarti ai vari eventi di RichTextBox in modo da sapere quando aggiornare il ListBox e calcolare l'altezza di ogni riga, ma ciò dovrebbe essere possibile con il FlowDocument collegato a RichTextBox.
Non sono sicuro se mi piace questa idea: mantenere le baseline del testo della casella di riepilogo in linea con le linee di base di RichEdit potrebbe essere problematico (sicuramente se il suo formattatore di codice consente caratteri diversi), ma poiché non ho un'alternativa, +1 –
Non ero abbastanza intelligente per fare quel lavoro. Non sono stato in grado di capire quando il RichTextBox sta scorrendo in modo che possa provare a scorrere la ListBox della stessa quantità. E, poiché le linee si allungano troppo nella RTB, essa avvolge automaticamente la loro visualizzazione, e io dovrei omettere i numeri di riga di ListBox in quel caso. –
RichText supporta "protetto" - non modificabile - span. È possibile scaricare i numeri di linea come estensioni di testo protetto come parte del flusso RTF (quando si esegue la formattazione).
In Win Forms, è possibile utilizzare RichTextBox.SelectionProtected Property. WPF deve avere qualcosa di simile.
In questo modo, tutte le linee di base saranno corrette e non sarà necessario eseguire alcuna riflessione/programmazione aggiuntiva per ottenere un corretto funzionamento dell'editor. Il testo modificabile sarà modificabile e i numeri di riga non saranno.
Unico inconveniente è che è necessario reinviare il flusso RTF dopo ogni modifica. Ma immagino che stavi già facendo questo per fornire la formattazione di analisi/diagnostica degli errori/qualsiasi altra cosa.
Come utilizzare il controllo WPF di testo ricco di AqiStar? AqiStar.TextBox
Io non lavoro per loro ... So solo che Oren sta usando questo prodotto nel suo NHibernate Profiler (NHProf) e sembra scavare.
Sfortunatamente, il mio datore di lavoro non ci permetterà di includere software che dobbiamo licenziare nella nostra soluzione. –
AvalonEdit è un buono ed è open source. Penso che abbia quasi tutte le funzionalità del controllo Aqistar come l'evidenziazione e la piegatura della sintassi. Facilità di configurazione e utilizzo. Ulteriori dettagli possono essere trovati here.
- 1. C'è un modo per nascondere i numeri di riga in Ace Editor?
- 2. WPF RichTextBox Sintassi Evento di evidenziazione
- 3. C# WPF Numero riga e colonna da RichTextBox
- 4. Disabilita selezione richtextbox wpf
- 5. Come creare un editor per la visualizzazione del database (con join) in Windows Form/WPF?
- 6. C#/WPF: Disabilita Text-Wrap di RichTextBox
- 7. Come si elimina un RichTextBox WPF?
- 8. Come mostrare il numero di una riga in un RichTextBox C#
- 9. Elementi di sola lettura Esegui elementi in un RichTextBox WPF?
- 10. Editor di testo con evidenziazione della sintassi e numeri di riga?
- 11. Consigli per creare una finestra di registro in WPF
- 12. Parsing input da riga di comando per i numeri
- 13. Come creare solo testo RichTextBox?
- 14. Rimuovere i numeri di riga da SyntaxHighlighter
- 15. Java SWT mostra i numeri di riga per StyledText
- 16. Set RTF testo nel controllo WPF RichTextBox
- 17. Valgrind non mostra i numeri di riga
- 18. Come ottengo i numeri di riga in PL/SQL Developer?
- 19. nano editor interruzioni di riga
- 20. Differenza tra Textbox e RichTextbox wpf?
- 21. Come creare un bordo tra i numeri di riga e il testo in Vim
- 22. Configurazione Visual Studio 2005 per stampare i numeri di riga
- 23. È possibile creare numeri di riga del display VIM?
- 24. Come incorporare un editor asso con un numero di riga arbitrario
- 25. Strumento per creare un editor di codice di stile jsFiddle/jsbin.com?
- 26. impostazioni della lingua in conflitto di Richtextbox WPF
- 27. Risultati incoerenti con RichTextBox ScrollToCaret
- 28. RichTextBox equivalente di TextBox.AcceptsReturn
- 29. Mostra i numeri esadecimali di un file
- 30. C'è un modo per raggruppare o disabilitare temporaneamente la cronologia degli annullamenti per un oggetto RichTextBox?
Non ero abbastanza intelligente per farlo funzionare. Non sono stato in grado di capire quando il RichTextBox sta scorrendo in modo che possa provare a scorrere la ListBox della stessa quantità. E, poiché le linee si allungano troppo nella RTB, essa avvolge automaticamente la loro visualizzazione, e io dovrei omettere i numeri di riga di ListBox in quel caso. –