Dopo aver trascorso una buona quantità di tempo, cercare questa funzione:C#: una funzione che consente di regolare automaticamente i caratteri di base sulla dimensione del controllo in fase di esecuzione?
Ho pensato che sarebbe bello se qualcuno potesse darmi il modo migliore per farlo. Esiste una funzione che può regolare dinamicamente la dimensione del carattere di base sulla dimensione di qualsiasi controllo di forma di finestra (etichetta/pulsante)?
Questo è quello che ho dopo la ricerca online, purtroppo questi codici danno molta eccezione durante il tempo di esecuzione quando il controllo ridimensiona.
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;
}
}
Non credo che ho fatto il mio modo di affrontare questo è giusto, qualcuno sa un modo che sarà regolare la dimensione del carattere di base anche quando aumentare e diminuire la dimensione del controllo in fase di esecuzione? Personalmente penso che questo post sarà un ottimo post per gli altri a cui fare riferimento.
TextRenderer mi dà sempre un mal di testa, questa funzione è un po 'complicata a mio parere. –