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 |
---|---|
|
MaskedTextBox (TextBox base) |
|
|
|
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 |
---|---|
|
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.