Tworzę edytor tekstu dla określonego języka domeny. Używam WPF RichTextBox
jako podstawowej kontroli. Nie wiem, jak z wdziękiem włączyć numerację linii. Czy ktokolwiek wie o jakichkolwiek przykładach?WPF RichTextBox do tworzenia edytora o numerach linii
Odpowiedz
Chciałbym utworzyć sterowanie złożone, z kontrolką panelu stosu i blokami tekstu po lewej stronie, które można wykorzystać do obsługi numeracji linii. Jeśli obawiasz się liczby linii i posiadania zbyt wielu elementów wizualnych, możesz użyć ListBox w trybie wirtualnym.
Będziesz musiał podłączyć się do różnych zdarzeń w RichTextBox, aby wiedzieć, kiedy zaktualizować ListBox, a także obliczyć wysokość każdej linii, ale to powinno być wykonalne z FlowDocument dołączonym do RichTextBox.
Nie jestem pewien, czy podoba mi się ten pomysł - utrzymywanie linii bazowych tekstu na listach w linii z liniami bazowymi RichEdit może być problematyczne (zdecydowanie, jeśli jego formatator pozwala na różne czcionki) - ale ponieważ nie mam alternatywy, +1 –
Nie byłem wystarczająco inteligentny, aby wykonać tę pracę. Nie byłem w stanie dowiedzieć się, kiedy RichTextBox przewija się, dzięki czemu mogę spróbować przewinąć ListBox w tej samej ilości. A ponieważ linie są zbyt długie w RTB, automatycznie owija ekran, a w takim przypadku pomijam numery linii ListBox. –
RichText obsługuje "chronione" - nieedytowalne - rozpiętości. Można zrzucić numery linii jako chronione rozpiętości tekstu jako część strumienia RTF (podczas formatowania).
W Win Forms można użyć RichTextBox.SelectionProtected Property. WPF musi mieć coś podobnego.
W ten sposób wszystkie linie bazowe będą poprawne i nie będziesz musiał wykonywać żadnego dodatkowego myślenia/programowania, aby edytor zachowywał się właściwie. Edytowalny tekst będzie edytowalny, a numery linii nie będą.
Jedyną wadą jest to, że musisz ponownie przesłać strumień RTF po każdej edycji. Ale wyobrażam sobie, że już to robiłeś, aby zapewnić formatowanie/diagnostykę błędów/cokolwiek.
Co powiesz na używanie formantu WPF AqiStar? AqiStar.TextBox
Nie pracuję dla nich ... Po prostu wiem, że Oren używa tego produktu w swoim NHiFinderze (NHProf) i wydaje się, że go kopie.
Niestety, mój pracodawca nie pozwala nam dołączyć oprogramowania, które musimy licencjonować w naszym rozwiązaniu. –
Jest to dobry i jest open source. Myślę, że ma prawie wszystkie funkcje kontrolki Aqistar, takie jak podświetlanie składni i składanie. Łatwość konfiguracji i użytkowania. Dalsze szczegóły można znaleźć here.
- 1. Debugowanie skryptów powłoki o numerach linii
- 2. Haskell - Próba zastosowania funkcji do linii o wielu numerach
- 3. Jak wyczyścić RichTextBox WPF?
- 4. bash: sortowanie ciągów o numerach
- 5. Zestaw RTF tekst do kontroli WPF RichTextBox
- 6. Konfliktowe ustawienia językowe WPF richtextbox
- 7. WPF RichTextBox Znaczenie podświetlania składni
- 8. C#/WPF: Wyłącz zawijanie tekstu w RichTextBox
- 9. Dołącz dwie wielopekseksowe pandy danych o numerach
- 10. C# Wiersz WPF i kolumna z RichTextBox
- 11. Jak zmienić format określonych linii w RichTextBox
- 12. RichTextBox (WPF) nie ma właściwości String "Text"
- 13. Dynamiczne dodawanie hiperłączy do RichTextBox
- 14. Samouczek WPF do tworzenia niestandardowej kontroli użytkownika
- 15. Metoda RichTextBox WPF - ScrollToEnd() nie powoduje żadnego przewijania
- 16. Znajdź pierwszy element z literowym pierwszeństwem na liście o numerach
- 17. Sortowanie tablicy nazw plików zawierających ciągi o numerach
- 18. Usuwanie niechcianego edytora eclipse pustej linii
- 19. Kopiowanie emotikonów "tekst" z richtextbox pokazując obraz w wpf
- 20. RichTextBox nie przetwarza nowe postacie powrotów linii/karetki
- 21. Wybierz zakres tekstu w RichTextBox WPF (FlowDocument) Programowo
- 22. Klikanie HyperLinks w RichTextBox bez przytrzymywania CTRL - WPF
- 23. RichTextBox w WPF nie ma właściwości jako .Lines?
- 24. Niespójne wyniki z RichTextBox ScrollToCaret
- 25. Resetuj RTF w RichTextBox?
- 26. niedopasowanie między RichTextBox i Word
- 27. RichTextBox - UI Resize powoduje ogromne obciążenia procesora
- 28. Operacje bitowe na nie numerach
- 29. Dodawanie stylu do edytora Do
- 30. Skopiuj tekst z edytora nano do powłoki
Nie byłem wystarczająco inteligentny, aby wykonać tę pracę. Nie byłem w stanie dowiedzieć się, kiedy RichTextBox przewija się, dzięki czemu mogę spróbować przewinąć ListBox w tej samej ilości. A ponieważ linie są zbyt długie w RTB, automatycznie owija ekran, a w takim przypadku pomijam numery linii ListBox. –