AutoSize 속성 개요
AutoSize 속성을 사용하면 크기를 변경하는 컨트롤이 필요한 경우, PreferredSize 속성으로 지정된 값을 유지할 수 있습니다. AutoSizeMode
속성을 설정하여 특정 컨트롤의 크기 조정 동작을 조정합니다.
AutoSize 동작
일부 컨트롤만이 AutoSize 속성을 지원합니다. 뿐만 아니라, AutoSize 속성을 지원하는 일부 컨트롤도 AutoSizeMode
속성을 지원합니다.
AutoSize 속성은 특정 컨트롤 유형과 AutoSizeMode
속성의 값(속성이 있는 경우)에 따라, 약간 다른 동작을 생성합니다. 다음 표에서는 항상 참인 동작에 대해 설명하고 각 동작에 대해 간략하게 설명합니다.
항상 true 동작 | Description |
---|---|
자동 크기 조정은 런타임 기능입니다. | 즉, 컨트롤이 커지거나 줄어들지 않으므로 추가로 영향을 주지 않습니다. |
컨트롤 크기가 변경되면 Location 속성 값은 항상 일정하게 유지됩니다. | 컨트롤의 콘텐츠가 커지면 컨트롤은 오른쪽 및 아래쪽으로 커집니다. 컨트롤은 왼쪽으로 커지지 않습니다. |
Dock 및 Anchor 속성은 AutoSize가 true 인 경우 적용됩니다. |
컨트롤의 Location 속성 값은 올바른 값으로 조정됩니다. 참고Label 컨트롤은 이 규칙의 예외입니다. 고정된 Label 컨트롤의 AutoSize 속성 값을 true 로 설정하면 Label 컨트롤이 늘어나지 않습니다. |
컨트롤의 MaximumSize 및 MinimumSize 속성은 AutoSize 속성 값에 관계없이 항상 적용됩니다. | MaximumSize 및 MinimumSize 속성은 AutoSize 속성의 영향을 받지 않습니다. |
기본적으로 설정되는 최소 크기는 없습니다. | 즉, AutoSize에서 컨트롤이 줄어들도록 설정되고 컨트롤에 콘텐츠가 없는 경우 Size 속성 값은 0.0입니다. 이 경우 컨트롤은 특정 지점으로 줄어들고 쉽게 보이지 않습니다. |
컨트롤이 GetPreferredSize 메서드를 구현하지 않는 경우 GetPreferredSize 메서드는 Size 속성에 할당된 마지막 값을 반환합니다. | 즉, AutoSize를 true 로 설정해도 영향을 주지 않습니다. |
TableLayoutPanel 셀의 컨트롤은 MinimumSize에 도달할 때까지 항상 셀에 맞게 줄어듭니다. | 이 크기는 최대 크기로 적용됩니다. 이는 셀이 AutoSize 행 또는 열의 일부인 경우가 아닙니다. |
AutoSizeMode 속성
AutoSizeMode
속성은 기본 AutoSize 동작에 대한 보다 세분화된 컨트롤을 제공합니다. AutoSizeMode
속성은 컨트롤이 콘텐츠에 맞게 크기를 조정하는 방법을 지정합니다. 예를 들어 콘텐츠는 Button 컨트롤에 대한 텍스트이거나 컨테이너에 대한 자식 컨트롤일 수 있습니다.
다음 표에서는 AutoSizeMode 설정과 각 설정이 얻는 동작에 대한 설명을 보여줍니다.
AutoSizeMode 설정 | 동작 |
---|---|
GrowAndShrink | 이 컨트롤은 콘텐츠를 에워싸도록 확장되거나 축소됩니다. MinimumSize 및 MaximumSize 값은 적용되지만, Size 속성의 현재 값은 무시됩니다. 이것은 AutoSize 속성이 있고 AutoSizeMode 속성이 없는 컨트롤과 동일한 동작입니다. |
GrowOnly | 이 컨트롤은 콘텐츠를 에워싸도록 필요한 만큼 확장되지만, Size 속성으로 지정된 값보다 작게는 축소되지 않습니다.AutoSizeMode 의 기본값입니다. |
AutoSize 속성을 지원하는 컨트롤
다음 표에서 AutoSize 및 AutoSizeMode
속성을 지원하는 컨트롤을 나열합니다.
AutoSize 지원 | 컨트롤 형식 |
---|---|
- AutoSize 속성이 지원됩니다. - AutoSizeMode 속성이 없습니다. |
CheckBox DomainUpDown Label LinkLabel MaskedTextBox(TextBox base) NumericUpDown RadioButton TextBox TrackBar |
- AutoSize 속성이 지원됩니다. - AutoSize 속성이 지원됩니다. |
Button CheckedListBox FlowLayoutPanel Form GroupBox Panel TableLayoutPanel |
- AutoSizeMode 속성이 없습니다. |
CheckedListBox ComboBox DataGridView DateTimePicker ListBox ListView MaskedTextBox MonthCalendar ProgressBar PropertyGrid RichTextBox SplitContainer TabControl TabPage TreeView WebBrowser ScrollBar |
디자인 환경에서 자동 크기 조정
다음 표에서는 AutoSize 및 AutoSizeMode
속성의 값을 기반으로 디자인 타임에 컨트롤의 크기 조정 동작을 설명합니다.
SelectionRules 속성을 재정의하여 지정된 컨트롤이 사용자 크기 조정 가능한 상태인지 여부를 확인합니다. 다음 표에서 “cannot”은 Moveable만 의미하고, “can”은 AllSizeable 및 Moveable을 의미합니다.
자동 크기 조정 설정 | 디자인 타임 크기 조정 제스처 |
---|---|
- AutoSize = true - AutoSizeMode 속성이 없습니다. |
다음 컨트롤을 제외하고는 사용자가 디자인 타임에 컨트롤의 크기를 조정할 수 없습니다. - TextBox - MaskedTextBox - RichTextBox - TrackBar |
- AutoSize = true - AutoSizeMode = GrowAndShrink |
사용자가 디자인 타임에 컨트롤의 크기를 조정할 수 없습니다. |
- AutoSize = true - AutoSizeMode = GrowOnly |
사용자가 디자인 타임에 컨트롤의 크기를 조정할 수 있습니다. Size 속성이 설정되면 사용자는 컨트롤의 크기만 늘릴 수 있습니다. |
- AutoSize = false 또는 AutoSize 속성이 숨겨집니다. |
사용자가 디자인 타임에 컨트롤의 크기를 조정할 수 있습니다. |
참고
생산성을 최대화하기 위해 Visual Studio의 Windows Forms 디자이너는 Form 클래스의 AutoSize 속성을 숨깁니다. 디자인 타임에 양식은 실제 설정과 상관 없이 AutoSize 속성이 false
로 설정된 것처럼 동작합니다. 런타임에는 특별한 숙박 시설이 없고 AutoSize 속성은 속성 설정으로 지정된 대로 적용됩니다.
참고 항목
.NET Desktop feedback