Panoramica della proprietà AutoSize
La proprietà AutoSize consente a un controllo di modificarne le dimensioni, se necessario, per ottenere il valore specificato dalla proprietà PreferredSize. Tu adatti il comportamento di ridimensionamento per controlli specifici impostando la proprietà AutoSizeMode
.
Comportamento di Ridimensionamento Automatico
Solo alcuni controlli supportano la proprietà AutoSize. Inoltre, alcuni controlli che supportano la proprietà AutoSize supportano anche la proprietà AutoSizeMode
.
La proprietà AutoSize produce un comportamento leggermente diverso, a seconda del tipo di controllo specifico e del valore della proprietà AutoSizeMode
, se la proprietà esiste. La tabella seguente descrive i comportamenti che sono sempre veri e fornisce una breve descrizione di ognuno di essi.
Comportamento sempre vero | Descrizione |
---|---|
Il ridimensionamento automatico è una funzionalità di runtime. | Ciò significa che non ingrandisce né riduce mai un controllo e non ha quindi alcun ulteriore effetto. |
Se un controllo modifica le dimensioni, il valore della relativa proprietà Location rimane sempre costante. | Quando il contenuto di un controllo causa un aumento di dimensione, il controllo cresce verso destra e verso il basso. I controlli non si espandono verso sinistra. |
Le proprietà Dock e Anchor vengono rispettate quando AutoSize è true . |
Il valore della proprietà Location del controllo viene modificato in base al valore corretto. Nota Il controllo Label è l'eccezione a questa regola. Quando il valore della proprietà AutoSize di un controllo Label ancorato viene impostato su true , il controllo Label non verrà 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 sono interessate dalla proprietà AutoSize. |
Nessuna dimensione minima impostata per impostazione predefinita. | Ciò significa che se un controllo è impostato per ridursi sotto AutoSize e non ha contenuti, il valore della relativa proprietà Size è pari a 0,0. In questo caso, il controllo si ridurrà a un punto e non sarà facilmente visibile. |
Se un controllo non implementa il metodo GetPreferredSize, il metodo GetPreferredSize restituisce l'ultimo valore assegnato alla proprietà Size. | Ciò significa che l'impostazione di AutoSize su true non avrà alcun effetto. |
Un controllo in una cella TableLayoutPanel si riduce sempre in modo da adattarsi alla cella fino a quando non viene raggiunto il MinimumSize. | Questa dimensione viene applicata come dimensione massima. Non è il caso quando la cella è parte di una riga o colonna AutoSize. |
Proprietà AutoSizeMode
La proprietà AutoSizeMode
offre un controllo più granulare sul comportamento AutoSize predefinito. La proprietà AutoSizeMode
specifica il modo in cui un controllo si adatta al relativo contenuto. Il contenuto, ad esempio, potrebbe essere il testo di un controllo Button o dei controlli secondari di un contenitore.
La tabella seguente illustra le impostazioni AutoSizeMode e una descrizione del comportamento che ogni impostazione genera.
Impostazione AutoSizeMode | Comportamento |
---|---|
CrescereERidurre | Il controllo aumenta o si riduce per comprenderne il contenuto. I valori MinimumSize e MaximumSize vengono rispettati, ma il valore corrente della proprietà Size viene ignorato. Si tratta dello stesso comportamento dei controlli con la proprietà AutoSize e senza la proprietà AutoSizeMode . |
GrowOnly | Il controllo si espande quanto necessario per contenere il suo contenuto, ma non si ridurrà a una dimensione inferiore al valore specificato dalla sua proprietà Size. Questo è il valore predefinito per AutoSizeMode . |
Controlli che supportano la proprietà AutoSize
Nella tabella seguente sono elencati i controlli che supportano le proprietà AutoSize e AutoSizeMode
.
Supporto di AutoSize | Tipo di controllo |
---|---|
-
AutoSize proprietà supportata. - Nessuna proprietà AutoSizeMode . |
CheckBox DomainUpDown Label LinkLabel MaskedTextBox (TextBox base) NumericUpDown RadioButton TextBox TrackBar |
-
AutoSize proprietà supportata. - AutoSizeMode proprietà supportata. |
Button CheckedListBox FlowLayoutPanel Form GroupBox Panel TableLayoutPanel |
- Nessuna proprietà AutoSize. | CheckedListBox ComboBox DataGridView DateTimePicker ListBox ListView MaskedTextBox MonthCalendar ProgressBar PropertyGrid RichTextBox SplitContainer TabControl TabPage TreeView WebBrowser ScrollBar |
Funzione AutoSize nell'ambiente progettuale
Nella tabella seguente viene descritto il comportamento di 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 determinato controllo si trova in uno stato ridimensionabile dall'utente. Nella tabella seguente, "cannot" significa solo Moveable, mentre "can" significa AllSizeable e Moveable.
Impostazioni di Ridimensionamento automatico | Gesto di ridimensionamento in fase di progettazione |
---|---|
- AutoSize = true - Nessuna proprietà AutoSizeMode . |
L'utente non può ridimensionare il controllo in fase di progettazione, ad eccezione dei controlli seguenti: - TextBox - MaskedTextBox - RichTextBox - TrackBar |
- AutoSize = true - AutoSizeMode = GrowAndShrink |
L'utente non può ridimensionare il controllo in fase di progettazione. |
- AutoSize = true - AutoSizeMode = GrowOnly |
L'utente può ridimensionare il controllo in fase di progettazione. Quando la proprietà Size è impostata, l'utente può aumentare solo le dimensioni del controllo. |
-
AutoSize
=
false , o la proprietà AutoSize è nascosta. |
L'utente può ridimensionare il controllo in fase di progettazione. |
Nota
Per ottimizzare la produttività, il Progettazione di Windows Form in Visual Studio nasconde la proprietà AutoSize della classe Form. In fase di progettazione, il form si comporta come se la proprietà AutoSize sia impostata su false
, indipendentemente dall'impostazione effettiva. In fase di esecuzione, non si adotta alcuna misura particolare e la proprietà AutoSize viene applicata come specificato dall'impostazione della proprietà.
Vedere anche
.NET Desktop feedback