Visão geral da propriedade AutoSize
A propriedade AutoSize permite que um controle altere seu tamanho, se necessário, para obter o valor especificado pela propriedade PreferredSize. Ajuste o comportamento de dimensionamento para controles específicos definindo a propriedade AutoSizeMode
.
Comportamento de AutoSize
Apenas alguns controles dão suporte à propriedade AutoSize. Além disso, alguns controles que dão suporte à propriedade AutoSize também dão suporte à propriedade AutoSizeMode
.
A propriedade AutoSize produz um comportamento um pouco diferente, dependendo do tipo de controle específico e do valor da propriedade AutoSizeMode
, se a propriedade existir. A tabela a seguir descreve os comportamentos que são sempre verdadeiros e fornece uma breve descrição de cada um:
Comportamento sempre verdadeiro | Descrição |
---|---|
O redimensionamento automático é um recurso em tempo de execução. | Isso significa que um controle nunca cresce ou é reduzido e, em seguida, não tem mais efeito. |
Se um controle alterar o tamanho, o valor de sua propriedade Location sempre permanecerá constante. | Quando o conteúdo de um controle faz com que ele cresça, o controle cresce para a direita e para baixo. Os controles não crescem para a esquerda. |
As propriedades Dock e Anchor são respeitadas quando AutoSize é true . |
O valor da propriedade Location do controle é ajustado para o valor correto. Observação O controle Label é a exceção a essa regra. Quando você define o valor da propriedade AutoSize de um controle Label ancorado para true , o controle Label não será expandido. |
As propriedades MaximumSize e MinimumSize de um controle são sempre respeitadas, independentemente do valor de sua propriedade AutoSize. | As propriedades MaximumSize e MinimumSize não são afetadas pela propriedade AutoSize. |
Não há nenhum tamanho mínimo definido por padrão. | Isso significa que, se um controle estiver definido para reduzir em AutoSize e não tiver conteúdo, o valor de sua propriedade Size será 0,0. Nesse caso, seu controle diminuirá para um ponto e não será facilmente visível. |
Se um controle não implementar o método GetPreferredSize, o método GetPreferredSize retornará o último valor atribuído à propriedade Size. | Isso significa que a configuração AutoSize para true não terá efeito. |
Um controle em uma célula TableLayoutPanel sempre diminui para caber na célula até que seu MinimumSize seja atingido. | Esse tamanho é imposto como um tamanho máximo. Esse não é o caso quando a célula faz parte de uma linha ou coluna de AutoSize. |
Propriedade AutoSizeMode
A propriedade AutoSizeMode
fornece um controle mais refinado sobre o comportamento de AutoSize padrão. A propriedade AutoSizeMode
especifica como um controle se dimensiona para seu conteúdo. O conteúdo, por exemplo, pode ser o texto de um controle Button ou dos subcontroles de um contêiner.
A tabela a seguir mostra as configurações de AutoSizeMode e uma descrição do comportamento que cada configuração provoca.
Configuração de AutoSizeMode | Comportamento |
---|---|
GrowAndShrink | O controle cresce ou diminui para abranger seu conteúdo. Os valores MinimumSize e MaximumSize são respeitados, mas o valor atual da propriedade Size é ignorado. Esse é o mesmo comportamento dos controles com a propriedade AutoSize e sem a propriedade AutoSizeMode . |
GrowOnly | O controle se expande o quanto for necessário para acomodar seu conteúdo, mas não se reduzirá a menos do que o valor especificado por sua propriedade Size. Esse é o valor padrão para AutoSizeMode . |
Controles que dão suporte à propriedade AutoSize
A tabela a seguir lista os controles que dão suporte às propriedades AutoSize e AutoSizeMode
.
Suporte para Ajuste Automático de Tamanho | Tipo de controle |
---|---|
- AutoSize propriedade suportada. - Nenhuma propriedade AutoSizeMode . |
CheckBox DomainUpDown Label LinkLabel MaskedTextBox (TextBox base) NumericUpDown RadioButton TextBox TrackBar |
- AutoSize propriedade com suporte. Propriedade - AutoSizeMode com suporte. |
Button CheckedListBox FlowLayoutPanel Form GroupBox Panel TableLayoutPanel |
- Nenhuma propriedade AutoSize. | CheckedListBox ComboBox DataGridView DateTimePicker ListBox ListView MaskedTextBox MonthCalendar ProgressBar PropertyGrid RichTextBox SplitContainer TabControl TabPage TreeView WebBrowser ScrollBar |
AutoSize no Ambiente de Projeto
A tabela a seguir descreve o comportamento de dimensionamento de um controle em tempo de design, com base no valor de suas propriedades AutoSize e AutoSizeMode
.
Substitua a propriedade SelectionRules para determinar se um determinado controle está em um estado redimensionável pelo usuário. Na tabela a seguir, "não pode" significa apenas Moveable, "pode" significa AllSizeable e Moveable.
Configurações de dimensionamento automático | Gesto de dimensionamento no momento de design |
---|---|
- AutoSize = true - Nenhuma propriedade AutoSizeMode . |
O usuário não pode redimensionar o controle em tempo de design, exceto pelos seguintes controles: - TextBox - MaskedTextBox - RichTextBox - TrackBar |
- AutoSize = true - AutoSizeMode = GrowAndShrink |
O usuário não pode redimensionar o controle em tempo de design. |
- AutoSize = true - AutoSizeMode = GrowOnly |
O usuário pode redimensionar o controle em tempo de desenvolvimento. Quando a propriedade Size é definida, o usuário só pode aumentar o tamanho do controle. |
A propriedade - AutoSize = false ou AutoSize está oculta. |
O usuário pode redimensionar o controle no momento do design. |
Nota
Para maximizar a produtividade, o Designer de Formulários do Windows no Visual Studio sombreia a propriedade AutoSize da classe Form. Em tempo de design, o formulário se comporta como se a propriedade AutoSize estivesse definida como false
, independentemente de sua configuração real. Durante o tempo de execução, não é feita nenhuma adaptação especial, e a propriedade AutoSize é aplicada conforme especificado pela configuração da propriedade.
Consulte também
.NET Desktop feedback