5
經過大量的時間搜索此功能後:C#:在運行時基於控件大小自動調整字體的函數?
我認爲這將是很好,如果任何人都可以給我最好的方式來這樣做。 是否有一個函數可以根據任何窗體窗體控件(標籤/按鈕)的大小動態調整字體大小?
這是我在線研究後得到的結果,不幸的是,這些代碼在運行時會在控件重新調整大小時給出很多異常。
public void textAdjustment()
{
try
{
while (this.label.Width < System.Windows.Forms.TextRenderer.MeasureText(this.label.Text,
new Font(this.label.Font.FontFamily, this.label.Font.Size, this.label.Font.Style)).Width)
{
this.label.Font = new Font(this.label.Font.FontFamily, this.label.Font.Size - 1.0f, this.label.Font.Style);
}
if (this.label.Width > System.Windows.Forms.TextRenderer.MeasureText(this.label.Text, new Font(this.label.Font.FontFamily, this.label.Font.Size, this.label.Font.Style)).Width)
{
this.label.Font = new Font(this.label.Font.FontFamily, this.label.Font.Size + 0.1f, this.tableLabel.Font.Style);
}
if (this.label.Height < System.Windows.Forms.TextRenderer.MeasureText(this.label.Text, new Font(this.label.Font.FontFamily, this.label.Font.Size, this.label.Font.Style)).Height)
{
this.label.Font = new Font(this.label.Font.FontFamily, this.label.Font.Size - 0.6f, this.label.Font.Style);
}
}
catch (Exception e)
{
this.label.Font = Control.DefaultFont;
}
}
我不認爲我做了我的解決,這是正確的方式,沒有人知道的方式,甚至會調整字體大小時,基地增加,運行時間減少控制大小? 我個人認爲這篇文章對其他人來說也是一個非常好的帖子。
TextRenderer總是讓我頭疼,這個功能在我看來有點棘手。 – 2012-07-31 06:49:45