Próbuję dopasować Label
i NumericUpDown
według ich linii podstawowych tekstu. Robię to w kodzie, a nie projektanta. Jak uzyskać pozycję linii bazowej tekstu?Jak uzyskać położenie linii bazowej tekstu w Etykiecie i NumericUpDown?
10
A
Odpowiedz
13
// uczynić tekst linii odniesienia w układzie współrzędnych (pt.X, pt.Y)
Font myFont = Label1.Font;
FontFamily ff = myFont.FontFamily;
float lineSpace = ff.GetLineSpacing(myFont.Style);
float ascent = ff.GetCellAscent(myFont.Style);
float baseline = myFont.GetHeight(ev.Graphics) * ascent/lineSpace;
PointF renderPt = new PointF(pt.X, pt.Y - baseline));
ev.Graphics.DrawString("Render this string", myFont, textBrush, renderPt);
2
Do sterowania Label, można uzyskać pozycję w dolnej części tekstu w ten sposób:
Zakładając .TextAlign jest ustawiony na topLeft lub TopCenter lub TopRight, na dole tekstu w kontroli etykieta może można znaleźć za pomocą tej metody:
dim btmOfText as single
btmOfText = Label1.Font.GetHeight + Label1.Top
Metoda .GetHeight zwraca wysokość w pikselach bieżącej czcionki używanej przez etykietę.
Jeśli .TextAlign jest środkowy lub dolny, należy wykonać nieco bardziej złożone obliczenia.
Ta sama metoda będzie również działać z formantem NumericUpDown.
Powiązane problemy
- 1. Oblicz położenie linii bazowej UITextField
- 2. Podziały linii i liczba linii w etykiecie Swift (programowo)
- 3. Pionowe Wyrównanie tekstu na etykiecie
- 4. Zmienianie tekstu na etykiecie
- 5. Podział linii w etykiecie kategorii kendo-ui
- 6. Wyrównanie linii bazowej tekstu do początku innego elementu (CSS)
- 7. Wyrównywanie tekstu w etykiecie narzędzia ładowania początkowego
- 8. Jak uzyskać położenie elementu w StackPanel?
- 9. Jak uzyskać położenie ramki UIView po transformacji?
- 10. Jak ustawić Kontrolę NumericUpDown w Infinity?
- 11. Pokazywanie pełnego tekstu w etykiecie pinu w Xamarinie
- 12. Ustawienia UITextWyświetl położenie kursora na końcu tekstu
- 13. Zdarzenie TextChanged NumericUpDown
- 14. Android TextView i uzyskiwanie linii tekstu
- 15. Wyrównanie linii bazowej etykiet pól z linią bazową tekstu na wejściach tekstowych
- 16. Sprawdź, czy NumericUpDown jest pusty
- 17. WebGL: Jak uzyskać położenie każdego piksela w module cieniowania fragmentów?
- 18. GDI + rysowanie tekstu o różnych rozmiarach na linii bazowej ma problemy typu off-by-1px.
- 19. Jak uzyskać położenie i rozmiar węzła tekstowego HTML za pomocą javascript?
- 20. Pasek przewijania na etykiecie
- 21. wyrównać nagłówki do tej samej linii bazowej, niezależnie od następującego tekstu?
- 22. Jak uzyskać dostęp do właściwości klasy bazowej w Maszynopisie?
- 23. pyCairo: Jak zmienić rozmiar i położenie obrazu?
- 24. Jak czytać wiersz tekstu po linii w obszarze tekstowym HTML?
- 25. Obecne położenie w symulatorze
- 26. Jak wymusić podział linii między dwoma wyrazami w etykiecie zadeklarowanej przez XAML?
- 27. Jak uzyskać numery linii w programie dla programistów PL/SQL?
- 28. C++ usuwanie linii tekstu w pliku
- 29. Jak uzyskać numer bieżącej linii?
- 30. Jak uzyskać wysokość linii przęsła?
GetHeight nie zwraca pozycji wyjściowej czcionki, ale położenie górnej części następna linia. Czcionki windoze są wkręcane w ten sposób. Nie ma tu prostej odpowiedzi. – dar7yl
Zauważyłem, że Stewbob był niezadowolony z mojego odrzucenia jego odpowiedzi, i odwzajemnił się, obniżając liczbę moich stanowisk. Wybieram tutaj wysoką drogę i nie eskaluję tego do wojny totalnej. – dar7yl
@ dar7yl ... Umm ... kim jesteś? Widzę, że masz komentarze do mojego wpisu, ale nie rozumiem tego ostatniego? – Stewbob