Wykonuję niestandardowy rysunek przy użyciu kontekstu rysunku w WPF. Używam DrawingContext.DrawText
do rysowania ciągów. Teraz w miejscu, w którym chcę narysować tekst w pionie. Czy istnieje jakaś opcja w funkcji DrawingContext OR DrawText() do rysowania tekstu w pionie?Rysowanie tekstu pionowego w WPF przy użyciu obiektu DrawingContext.DrawText()
6
A
Odpowiedz
10
Będziesz musiał używać PushTransform
i Pop
metod klasy DrawingContext
.
DrawingContext dc; // Initialize this correct value
RotateTransform RT = new RotateTransform();
RT.Angle = 90
dc.PushTransform(RT)
dc.DrawText(...);
dc.Pop();
3
DrawingContext dc;
Point textLocation
var RT = new RotationTransform(-90.0);
// You should transform the location likewise...
location = new Point(-location.Y, location.X);
dc.PushTransform(RT);
dc.DrawText(formattedText, location);
Niestety, musiałem pisać o tym, bo walił głową o ścianę przez piętnaście minut próbuje dowiedzieć się tego. Nie chcę, żeby ktokolwiek inny przez to przechodził.
-1
Oto moje rozwiązanie: To trzeba utworzyć obracanie przekształcać wokół pochodzenia tekstu, więc mijamy xiy do RotateTransform konstruktora
...
// ft - formatted text, (x, y) - point, where to draw
dc.PushTransform(new RotateTransform(-90, x, y));
dc.DrawText(ft, new Point(x, y));
dc.Pop();
...
+2
Proszę rozważyć dodanie tekstu do wyjaśnienia swojej odpowiedzi. –
Powiązane problemy
- 1. Rysowanie tekstu wielojęzycznego przy użyciu PIL
- 2. Rysowanie tekstu za pomocą zewnętrznego obrysu przy użyciu obrazu HTML5
- 3. Tworzenie pionowego menu w Wpf
- 4. Rysowanie linii z Bezierpath przy użyciu obiektu CAShapeLayer
- 5. Rysowanie prostokąta wokół wykrytego obiektu przy użyciu SURF
- 6. Rysowanie pionowego zakończenia linii paska błędów w dotplot
- 7. Rysowanie siatki przy użyciu CSS
- 8. Pomiar tekstu w WPF
- 9. Rysowanie tekstu na płótnie
- 10. Wyrównanie tekstu w pionie w WPF TextBlock
- 11. Rysowanie kuli przy użyciu pikseli 3D (wokseli)
- 12. Rysowanie tabel w terminalu przy użyciu znaków ANSI box
- 13. C# trayicon przy użyciu wpf
- 14. Rozciąganie tekstu w poziomie przy użyciu CSS
- 15. Rysowanie ścieżki za pomocą linii w OpenLayers przy użyciu JavaScript
- 16. UserControl przy użyciu elementów macierzystych w wpf?
- 17. Komenda powiązania w WPF przy użyciu MVVM
- 18. Wyślij obiektu przy użyciu RabbitMQ
- 19. Rysowanie wybranych obszarów obiektu UIImage
- 20. Programowo przy użyciu ciągu jako nazwa obiektu przy uruchamianiu obiektu
- 21. C#/WPF: Wyłącz zawijanie tekstu w RichTextBox
- 22. Zmienianie kolejności stron w FragmentStatePagerAdapter przy użyciu getItemPosition (obiektu obiektu)
- 23. Typ Rzucanie obiektu przy użyciu obiektu "Typ" w języku C#
- 24. WPF Przeglądanie widoków przy użyciu wzorca MVVM
- 25. Tworzenie pionowego Tab użyciu html css
- 26. Rysowanie prostokąta z przerywanymi liniami przy użyciu Rafael.js
- 27. 2d Nie poprawnie rysowanie HUD przez QGLWidget (przy użyciu QPaintera)
- 28. Kopiowanie tekstu spacji przy użyciu Clipboard.js
- 29. Rysowanie obróconego tekstu na obraz w języku C#
- 30. Usuwanie liczb z tekstu przy użyciu C#
Mimo, ta odpowiedź jest dość stary Chciałbym dodać, że przekształcanie lokalizacja powinna być wykonana przez inny obiekt transformacji zamiast "ręcznie" wymieniać wartości ctor Point(), który działa tylko pod kątem 90. Podczas tworzenia obiektu TranslateTransform z lokalizacją tekstu i przesuwania go przed obrotem, kod będzie działał pod dowolnym kątem. – user2261015