Condividi tramite


Cenni preliminari sulla proprietà AutoSize

La proprietà AutoSize consente a un controllo di modificare le proprie dimensioni, se necessario, in modo da riflettere il valore specificato dalla proprietà PreferredSize. Impostare la proprietà AutoSizeMode per regolare il comportamento del ridimensionamento per controlli specifici.

Comportamento di AutoSize

La proprietà AutoSize è supportata solo da alcuni controlli. Inoltre, alcuni controlli che supportano la proprietà AutoSize supportano anche la proprietà AutoSizeMode.

La proprietà AutoSize determina un comportamento leggermente diverso a seconda del tipo di controllo specifico e del valore della proprietà AutoSizeMode, se disponibile. Nella tabella riportata di seguito sono elencati i comportamenti sempre validi e ne viene fornita una breve descrizione.

Comportamento sempre valido

Descrizione

Il ridimensionamento automatico è una funzionalità di runtime.

Questo significa che un controllo non viene mai ingrandito o ridotto e quindi non produce ulteriori effetti.

Se le dimensioni di un controllo cambiano, il valore della relativa proprietà Location rimane invariato.

Se un controllo viene ingrandito per fare spazio al contenuto, l'aumento di dimensioni avviene verso destra e verso il basso. I controlli non vengono estesi verso sinistra.

Le proprietà Dock e Anchor vengono rispettate quando AutoSize è true.

Il valore della proprietà Location del controllo viene modificato e impostato sul valore corretto.

Nota   Il controllo Label è un'eccezione a questa regola. Se la proprietà AutoSize di un controllo Label ancorato viene impostata su true, il controllo Label non viene esteso.

Le proprietà MaximumSize e MinimumSize di un controllo vengono sempre rispettate, indipendentemente dal valore della relativa proprietà AutoSize.

Le proprietà MaximumSize e MinimumSize non vengono influenzate dalla proprietà AutoSize.

Non esiste un'impostazione predefinita delle dimensioni minime.

Questo significa che se le dimensioni di un controllo senza contenuto vengono ridotte a causa di AutoSize, il valore della proprietà Size diventerà 0,0 e il controllo verrà ridotto a un punto, risultando quindi praticamente invisibile.

Se un controllo non implementa il metodo GetPreferredSize, il metodo GetPreferredSize restituisce l'ultimo valore assegnato alla proprietà Size.

Questo significa che l'impostazione di AutoSize su true non avrà alcun effetto.

Un controllo all'interno di una cella TableLayoutPanel viene sempre ridotto per adattarlo alle dimensioni della cella fino a raggiungere il valore MinimumSize.

Queste dimensioni sono quelle massime consentite. La situazione è diversa se la cella appartiene a una riga o colonna di tipo AutoSize.

Proprietà AutoSizeMode

La proprietà AutoSizeMode offre un controllo più preciso sul comportamento predefinito di AutoSize. La proprietà AutoSizeMode specifica in che modo un controllo si ridimensiona in base al contenuto, che può essere, ad esempio, il testo per un controllo Button o i controlli figlio per un contenitore.

Nella tabella riportata di seguito sono illustrate le impostazioni di AutoSizeMode e viene fornita una descrizione del comportamento determinato da ciascuna impostazione.

Impostazione di AutoSizeMode

Comportamento

GrowAndShrink

Il controllo si ingrandisce o si riduce per adattarsi al contenuto.

I valori di MinimumSize e MaximumSize vengono rispettati ma il valore corrente della proprietà Size viene ignorato.

Il comportamento è analogo a quello dei controlli con proprietà AutoSize e senza proprietà AutoSizeMode.

GrowOnly

Il controllo si ingrandisce fino alle dimensioni necessarie per racchiudere il contenuto, ma non si riduce al di sotto del valore specificato dalla relativa proprietà Size.

Questo è il valore predefinito per AutoSizeMode.

Controlli che supportano la proprietà AutoSize

Nella tabella riportata di seguito sono elencati i controlli che supportano le proprietà AutoSize e AutoSizeMode.

Supporto AutoSize

Tipo di controllo

  • Proprietà AutoSize supportata.

  • Nessuna proprietà AutoSizeMode.

CheckBox

DomainUpDown

Label

LinkLabel

MaskedTextBox (TextBox base)

NumericUpDown

RadioButton

TextBox

TrackBar

  • Proprietà AutoSize supportata.

  • Proprietà AutoSizeMode supportata.

Button

CheckedListBox

FlowLayoutPanel

Form

GroupBox

Panel

TableLayoutPanel

CheckedListBox

ComboBox

DataGridView

DateTimePicker

ListBox

ListView

MaskedTextBox

MonthCalendar

ProgressBar

PropertyGrid

RichTextBox

SplitContainer

TabControl

TabPage

TreeView

WebBrowser

ScrollBar

AutoSize nell'ambiente di progettazione

Nella tabella riportata di seguito viene descritto il comportamento del ridimensionamento di un controllo in fase di progettazione, in base al valore delle relative proprietà AutoSize e AutoSizeMode.

Eseguire l'override della proprietà SelectionRules per determinare se un dato controllo può essere ridimensionato dall'utente. Nella tabella riportata di seguito "non può" significa solo Moveable mentre "può" significa AllSizeable e Moveable.

Impostazioni di AutoSize

Azione di ridimensionamento in fase di progettazione

  • AutoSize = true

  • Nessuna proprietà AutoSizeMode.

Il controllo non può essere ridimensionato dall'utente in fase di progettazione, con le seguenti eccezioni:

Il controllo non può essere ridimensionato dall'utente in fase di progettazione.

Il controllo può essere ridimensionato dall'utente in fase di progettazione. Una volta impostata la proprietà Size, l'utente può solo aumentare le dimensioni del controllo.

Il controllo può essere ridimensionato dall'utente in fase di progettazione.

Nota

Per ottimizzare la produttività, Progettazione Windows Form esegue lo shadowing della proprietà AutoSize per la classe Form. In fase di progettazione il form si comporta come se la proprietà AutoSize fosse impostata su false, a prescindere dall'impostazione effettiva. In fase di esecuzione non vengono effettuati adattamenti particolari e la proprietà AutoSize viene applicata in base a quanto specificato dalla relativa impostazione.

Vedere anche

Riferimenti

AutoSize

PreferredSize

GetPreferredSize