Información general sobre la propiedad AutoSize
La propiedad AutoSize habilita un control para cambiar su tamaño en caso necesario, a fin de que se ajuste al tamaño especificado por la propiedad PreferredSize. El comportamiento de ajuste de tamaño para controles concretos se configura estableciendo la propiedad AutoSizeMode
.
Comportamiento de Ajuste de tamaño automático
Solo algunos controles admiten la propiedad AutoSize. Además, algunos controles que admiten la propiedad AutoSize también admiten la propiedad AutoSizeMode
.
La propiedad AutoSize produce un comportamiento algo diferente, según el tipo de control específico y el valor de la propiedadAutoSizeMode
(si la propiedad existe). En la tabla siguiente se describen los comportamientos que siempre son TRUE y se proporciona una breve descripción de cada uno:
Comportamiento siempre "true" | Descripción |
---|---|
El ajuste automático de tamaño es una característica de tiempo de ejecución. | Esto significa que nunca aumenta o reduce un control y luego no tiene ningún otro efecto. |
Si un control cambia de tamaño, el valor de su propiedad Location siempre permanece constante. | Cuando el contenido de un control hace que crezca, el control crece hacia la derecha y hacia abajo. Los controles no crecen a la izquierda. |
Se respetan las propiedades Dock y Anchor cuando AutoSize es true . |
El valor de la propiedad Location del control se ajusta al valor correcto. Nota el control Label es la excepción a esta regla. Al establecer el valor de la propiedad AutoSize de un control Label acoplado en true , el control Label no se ajustará. |
Siempre se respetan las propiedades MaximumSize y MinimumSize de un control, independientemente del valor de su propiedad AutoSize. | Las propiedades MaximumSize y MinimumSize no se ven afectadas por la propiedad AutoSize. |
No hay ningún tamaño mínimo establecido de forma predeterminada. | Esto significa que si un control se establece para que se reduzca por debajo de AutoSize y no tiene contenido, el valor de su propiedad Size es 0,0. En este caso, el control se reducirá hasta un punto y no será visible fácilmente. |
Si un control no implementa el método GetPreferredSize, el método GetPreferredSize devuelve el último valor asignado a la propiedad Size. | Esto significa que el establecimiento de AutoSize en true no tendrá ningún efecto. |
Un control en una celda de TableLayoutPanel siempre se reduce para ajustarse a la celda hasta que se alcanza su MinimumSize. | Este tamaño se aplica como tamaño máximo. Este no es el caso cuando la celda forma parte de una fila o columna de AutoSize. |
Propiedad AutoSizeMode
La propiedad AutoSizeMode
proporciona un control más específico sobre el comportamiento predeterminado de AutoSize. La propiedad AutoSizeMode
especifica cómo un control ajusta su propio tamaño a su contenido. El contenido, por ejemplo, podría ser el texto de un control Button o los controles secundarios de un contenedor.
En la tabla siguiente se muestran la configuración AutoSizeMode y una descripción del comportamiento que establece cada valor.
Configuración de AutoSizeMode | Comportamiento |
---|---|
GrowAndShrink | El control se expande o se contrae para ajustarse a su contenido. Se respetan los valores de MinimumSize y MaximumSize, pero se omite el valor actual de la propiedad Size. Este es el mismo comportamiento que los controles con la propiedad AutoSize y sin ninguna propiedad AutoSizeMode . |
GrowOnly | El control se expande todo lo necesario para ajustarse a su contenido, pero no se contrae menos que el valor especificado por su propiedad Size. Este es el valor predeterminado de la clase AutoSizeMode . |
Controles que admiten la propiedad de Ajuste de tamaño automático
En la tabla siguiente se enumeran los controles que admiten las propiedades AutoSize y AutoSizeMode
.
Compatibilidad con el Ajuste de tamaño automático | Tipo de control |
---|---|
- AutoSize propiedad admitida. - Sin propiedad AutoSizeMode . |
CheckBox DomainUpDown Label LinkLabel MaskedTextBox (TextBox base) NumericUpDown RadioButton TextBox TrackBar |
- AutoSize propiedad admitida. - AutoSizeMode propiedad admitida. |
Button CheckedListBox FlowLayoutPanel Form GroupBox Panel TableLayoutPanel |
- Sin propiedad AutoSize. | CheckedListBox ComboBox DataGridView DateTimePicker ListBox ListView MaskedTextBox MonthCalendar ProgressBar PropertyGrid RichTextBox SplitContainer TabControl TabPage TreeView WebBrowser ScrollBar |
Ajuste de tamaño automático en el entorno de diseño
En la tabla siguiente se describe el comportamiento de ajuste de tamaño de un control en tiempo de diseño en función del valor de sus propiedades AutoSize y AutoSizeMode
.
Invalide la propiedad SelectionRules para determinar si un control determinado está en un estado que permite el ajuste de tamaño por el usuario. En la tabla siguiente, «no puede» significa Moveable únicamente, y «puede» significa AllSizeable y Moveable.
Configuración del Ajuste de tamaño automático | Gesto de ajuste de tamaño en tiempo de diseño |
---|---|
- AutoSize = true - Sin propiedad AutoSizeMode . |
El usuario no puede cambiar el tamaño del control en tiempo de diseño, excepto para los siguientes controles: - TextBox - MaskedTextBox - RichTextBox - TrackBar |
- AutoSize = true - AutoSizeMode = GrowAndShrink |
El usuario no puede cambiar el tamaño del control en tiempo de diseño. |
- AutoSize = true - AutoSizeMode = GrowOnly |
El usuario puede cambiar el tamaño del control en tiempo de diseño. Cuando se establece la propiedad Size, el usuario solo puede aumentar el tamaño del control. |
- AutoSize = false , o AutoSize la propiedad está oculta. |
El usuario puede cambiar el tamaño del control en tiempo de diseño. |
Nota
Para maximizar la productividad, el Diseñador de Windows Forms en Visual Studio sombrea la propiedad AutoSize de la clase Form. En tiempo de diseño el formulario se comporta como si la propiedad AutoSize se hubiera establecido en false
, independientemente de su configuración real. En tiempo de ejecución no se realiza ningún alojamiento especial y la propiedad AutoSize se aplica según lo especificado por el valor de propiedad.
Consulte también
.NET Desktop feedback