Cenni preliminari sulla proprietà AutoSize
La AutoSize proprietà consente a un controllo di modificarne le dimensioni, se necessario, per ottenere il valore specificato dalla PreferredSize proprietà . È possibile modificare il comportamento di ridimensionamento per controlli specifici impostando la AutoSizeMode
proprietà .
Comportamento autoSize
Solo alcuni controlli supportano la AutoSize proprietà . Inoltre, alcuni controlli che supportano la AutoSize proprietà supportano anche la AutoSizeMode
proprietà .
La AutoSize proprietà produce un comportamento leggermente diverso, a seconda del tipo di controllo specifico e del valore della AutoSizeMode
proprietà, se la proprietà esiste. La tabella seguente descrive i comportamenti che sono sempre true e fornisce una breve descrizione di ogni comportamento:
Comportamento sempre vero | Descrizione |
---|---|
Il ridimensionamento automatico è una funzionalità di runtime. | Ciò significa che non cresce mai o riduce mai un controllo e quindi non ha alcun effetto aggiuntivo. |
Se un controllo modifica le dimensioni, il valore della relativa Location proprietà rimane sempre costante. | Quando il contenuto di un controllo aumenta, il controllo cresce verso destra e verso il basso. I controlli non aumentano a sinistra. |
Le Dock proprietà e Anchor vengono rispettate quando AutoSize è true . |
Il valore della proprietà del Location controllo viene modificato in base al valore corretto. Nota IlLabel controllo è l'eccezione a questa regola. Quando si imposta il valore della proprietà di AutoSize un controllo ancorato Label su true , il Label controllo non si estenderà. |
Le proprietà e MinimumSize di MaximumSize un controllo vengono sempre rispettate, indipendentemente dal valore della relativa AutoSize proprietà. | Le MaximumSize proprietà e MinimumSize non sono interessate dalla AutoSize proprietà . |
Nessuna dimensione minima impostata per impostazione predefinita. | Ciò significa che se un controllo è impostato per la compattazione AutoSize e non ha contenuto, il valore della relativa Size proprietà è 0,0. In questo caso, il controllo si ridurrà a un punto e non sarà facilmente visibile. |
Se un controllo non implementa il GetPreferredSize metodo , il metodo restituisce l'ultimo GetPreferredSize valore assegnato alla Size proprietà . | Ciò significa che l'impostazione AutoSize su true non avrà alcun effetto. |
Un controllo in una TableLayoutPanel cella viene sempre compattato per adattarsi alla cella fino a quando non MinimumSize viene raggiunto. | Questa dimensione viene applicata come dimensione massima. Non si tratta del caso in cui la cella fa parte di una riga o di una AutoSize colonna. |
AutoSizeMode, proprietà
La AutoSizeMode
proprietà fornisce un controllo più granulare sul comportamento predefinito AutoSize . La AutoSizeMode
proprietà specifica la dimensione di un controllo per il relativo contenuto. Il contenuto, ad esempio, può essere il testo di un Button controllo o dei controlli figlio per un contenitore.
La tabella seguente illustra le AutoSizeMode impostazioni e una descrizione del comportamento che ogni impostazione genera.
Impostazione autoSizeMode | Comportamento |
---|---|
GrowAndShrink | Il controllo aumenta o si riduce per comprenderne il contenuto. I MinimumSize valori e MaximumSize vengono rispettati, ma il valore corrente della Size proprietà viene ignorato. Si tratta dello stesso comportamento dei controlli con la AutoSize proprietà e nessuna AutoSizeMode proprietà. |
GrowOnly | Il controllo aumenta quanto necessario per comprenderne il contenuto, ma non ridurrà il valore specificato dalla relativa Size proprietà. Questo è il valore predefinito per AutoSizeMode . |
Controlli che supportano la proprietà AutoSize
Nella tabella seguente sono elencati i controlli che supportano le AutoSize proprietà e AutoSizeMode
.
Supporto di AutoSize | Tipo di controllo |
---|---|
- AutoSize proprietà supportata. - Nessuna AutoSizeMode proprietà. |
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 AutoSize proprietà. | CheckedListBox ComboBox DataGridView DateTimePicker ListBox ListView MaskedTextBox MonthCalendar ProgressBar PropertyGrid RichTextBox SplitContainer TabControl TabPage TreeView WebBrowser ScrollBar |
Ridimensionamento automatico nell'ambiente di progettazione
Nella tabella seguente viene descritto il comportamento di ridimensionamento di un controllo in fase di progettazione, in base al valore delle relative AutoSize proprietà e AutoSizeMode
.
Eseguire l'override della SelectionRules proprietà per determinare se un determinato controllo è in uno stato ridimensionabile dall'utente. Nella tabella seguente "cannot" indica Moveable solo , "can" significa AllSizeable e Moveable.
Impostazioni di Ridimensionamento automatico | Movimento di ridimensionamento in fase di progettazione |
---|---|
- AutoSize = true - Nessuna AutoSizeMode proprietà. |
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 Size proprietà è impostata, l'utente può aumentare solo le dimensioni del controllo. |
- AutoSize = false , o AutoSize la proprietà è nascosta. |
L'utente può ridimensionare il controllo in fase di progettazione. |
Nota
Per ottimizzare la produttività, la finestra di progettazione Windows Form in Visual Studio ombreggiate la AutoSize proprietà per la Form classe . In fase di progettazione, il form si comporta come se la AutoSize proprietà sia impostata su false
, indipendentemente dall'impostazione effettiva. In fase di esecuzione, non viene effettuata alcuna sistemazione speciale e la AutoSize proprietà viene applicata come specificato dall'impostazione della proprietà.
Vedi anche
.NET Desktop feedback