본문 바로가기

프로그래밍/C#

자동사이즈 변경

반응형

public Font AutoFontSize(Label label, String text)
        {
            Font ft;
            Graphics gp;
            SizeF sz;
            Single Faktor, FaktorX, FaktorY;

            gp = label.CreateGraphics();
            sz = gp.MeasureString(text, label.Font);
            gp.Dispose();
           
            FaktorX = (label.Width) / sz.Width;
            FaktorY = (label.Height) / sz.Height;

            if (FaktorX > FaktorY)
                Faktor = FaktorY;
            else
                Faktor = FaktorX;
            ft = label.Font;
           
            return new Font(ft.Name, ft.SizeInPoints * (Faktor) - 1);
        }
// Label 크기가 ReSize 될때 마다 거기에 마춰서 Label Text 폰트 크기가 변환합니당.
 

private void Form1_Resize(object sender, EventArgs e)
        {
            string str = "kekekekekekekekekekek";
            label1.Text = str;
            label1.Width = panel1.Width;
            label1.Height = panel1.Height;

            label1.Font = AutoFontSize(label1, str);
        }

// Text에 적히는 값이 Label Width에서 넘어가면 Label Text 폰트 크기가 변환합니당.

private void textBox1_TextChanged_1(object sender, EventArgs e)
        {
            label1.Text = textBox1.Text;
            label1.Font = AutoFontSize(label1, textBox1.Text);
        }



반응형

'프로그래밍 > C#' 카테고리의 다른 글

TimeSpan 시간 계산( 최근 파일 변경시간 표시)  (1) 2022.06.15
C# DateTime Format  (0) 2020.01.09
문자열 시간 계산  (0) 2015.09.18
HEX 문자열 BYTE 변환  (0) 2015.07.10