Also zur zeit arbeite ich an einer eignen combobox .
nun möchte ich aber das verhalten der "echten"combobox nachahmen ,in der hinsicht der anpassung des controllgrösse(in dehm die textbox und dropd.button angebettet sind) an die clientgrösse von der textbox.
ich bin auch hinsichtlich der berechnung fündig geworden,einzige manko ist, das bei hohen Fontgrösse die clientgrösse meiner erstellten textbox und die clientgrösse der textbox in einer Combobox ,die ich zu vergleichzwecken nutze,unterschiede aufweisen.
die routine für die berechnung:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| float em_height = OriginalFont.FontFamily.GetEmHeight(OriginalFont.Style); float double EmHeightPixels = OriginalFont.Size * 96 / 72; float double design_to_pixels = EmHeightPixels / em_height;
float FontAscent = OriginalFont.FontFamily.GetCellAscent(OriginalFont.Style); float FontDescent = OriginalFont.FontFamily.GetCellDescent(OriginalFont.Style);
float Fontheight = (FontAscent + FontDescent) * design_to_pixels; fnt = new Font(fnt.FontFamily, Fontheight, fnt.Style, GraphicsUnit.Pixel); |
soweit ich es beobachten konnte ,(anhand der TestCombobox) past sich der rahmen an dehm clientbereich der textbox an.
bei einer fontgrösse von 11 ... 30 point bleibt sich beide gleich ,aber zb bei einer extremen fontgrösse von 99,75 point ,ist die clientgrösse bei der textbox(Combobox) 156 und bei meiner 171.
tja nun bin ich etwas ratlos ;(
wie schon beschrieben geht es mir erstmal nur um das verhalten der textbox ,bei änderungen der font´s
hoffe es kann mir jemand weiterhelfen
mfg nuckey
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt