ermitteln Ich habe eine Reihe von Schaltflächen, die Dateinamen anzeigen. Wenn ich die Text-Eigenschaft festlege, wenn der Dateiname breiter ist als die Anzahl der verfügbaren Pixel, wird der Text "umbrochen" und stattdessen, wenn der Text angezeigt wird LeftMiddle, wird LeftTop angezeigt. Daher zeige ich nur so viele Zeichen an, wie angezeigt werden können (mit der Methode PathCompactPathEx()).Wie Pixel für Text in System.Windows.Forms.Button
Allerdings - Wie kann ich feststellen, wie viele Pixel verfügbar sind? Mein aktueller Ansatz ist:
button.Width - button.Image.Width - button.Padding.Horizontal
Dies funktioniert nicht immer und manchmal wird der Text immer noch umbrochen.
Gibt es Hinweise darauf, wie Sie die Anzahl der für den Text verfügbaren Pixel richtig bestimmen können?
Ja, ich vermute ich könnte - vorausgesetzt ich kenne ungefähr den verfügbaren Platz (siehe Frage). Ich bin immer noch neugierig, warum sich TextRenderer.MeasureText() von der internen Button-Malbearbeitung unterscheidet ... Sicherlich muss die Anzahl der Pixel, die für Text in einer Schaltfläche zur Verfügung stehen, berechnet werden können? – JohnBarton
Da Button Text auf verschiedene Arten malen kann. Zum Beispiel wenn FlatStyle == System, dann wird der Text vom System gezeichnet, wenn FlatStyle == Default, dann hängt das Text-Painting von der UseCompatibleTextRendering-Eigenschaft ab und so weiter. Sie kennen auch keine Textränder, die von der Schaltflächenklasse in verschiedenen Malmodi verwendet werden. – arbiter
Danke, dass Sie sich die Zeit genommen haben, die Frage zu beantworten, sehr geschätzt. – JohnBarton