-
C# 컨트롤 사이즈에 맞춰서 폰트 크기 자동조절닷넷/WinForms 2016. 8. 12. 17:12반응형
Label로 예를 들면 속성 중에 Autosize를 true로 하면 폰트 크기에 따라서 Label의 크기가 달라지는데
반대로 Autosize를 false로 하고, Label의 사이즈에 따라서 글씨 크기를 조절하는 방법은 다음과 같다.
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); }
반응형'닷넷 > WinForms' 카테고리의 다른 글
C# DataGridView 열 순서 (0) 2016.12.13 C# 윈폼에서 같은 컨트롤들을 한번에 제어하는 방법 (2) 2016.08.18 C# 폼 이동 방법 (0) 2016.07.19 C# WindowsForm에서 배경 투명하게 하는 방법 (0) 2016.07.19 C# ComboBox 아이템 추가 (0) 2016.07.05