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