この関数の検索に時間を費やした後: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は常に私に頭痛を与えます、この機能は私の意見では少しトリッキーです。 –