Entwickler-Ecke
Basistechnologien - Button.AutoSize-Eigenschaft erzeugen
VampireSilence - Fr 05.11.10 20:13
Titel: Button.AutoSize-Eigenschaft erzeugen
Ich sitze hier gerade an einer Umsetzung für eine AutoSize-Eigenschaft für Buttons. Das Ergebnis soll später genau wie bei den Labels sein und ich brauche eigentlich nur einen kleinen Denkanstoß.
Bisher berechne ich die Breite der Buttons folgendermaßen:
14 + 10 * Text.Length
Das entspricht der Größe für die größten Buchstaben, wie "O" oder "X". So passen zumindest schonmal alle Zeichen rein, ohne verschluckt zu werden (Höhe übrigens 20px, immer -> kein Zeilenumbruch möglich / bzw. sichtbar), aber in die Button kommen später keine Texte, wie "OOO" oder "XX", sondern solche wie "Isobenzylketontetranitrat". Und besonders bei diesem Beispiel ist der Button später viel zu lang für den Text.
Als weitere kleine Erleichterung habe ich auch eine konstante Schriftart-/ und größe: "Microsoft Sans Serif; 8,25pt". Habt ihr da eine Idee ?
mfg
- VampireSilence
Th69 - Fr 05.11.10 21:09
Schau dir mal Graphics.MeasureString bzw. TextRenderer.MeasureText an. Damit kannst du dir die Größe eines Textes in Pixeln ermitteln lassen und dann entsprechend die Größe deines Buttons setzen.
Ralf Jansen - Fr 05.11.10 21:26
Von welcher Darstellungstechnik reden wir hier?
Zumindest in Winforms haben Buttons bereits eine funktionierende AutoSize Eigenschaft.
VampireSilence - Fr 05.11.10 21:56
@Th69
Echt praktisch, wusste garnicht, dass es sowas schon fertig gibt ! Das war genau das, was ich brauchte.
@Ralf Jansen
Ja, wir reden von WinForms, allerdings generiere ich die betreffenden Buttons erst zur Laufzeit, daher muss ich die Breite direkt selbst errechnen. Und da AutoSize auch die Höhe verändert (was ich nicht will), kann ich diese nicht nutzen.
mfg
- VampireSilence
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!