Свойство AutoSize
Свойство AutoSize позволяет элементу управления изменять свой размер, если это необходимо, в соответствии со значением свойства PreferredSize. Изменение размеров конкретных элементов управления регулируется заданием свойства AutoSizeMode
.
Поведение AutoSize
Свойство AutoSize поддерживают только некоторые элементы управления. Кроме того, некоторые элементы управления, поддерживающие свойство AutoSize, также поддерживают свойство AutoSizeMode
.
Поведение, диктуемое свойством AutoSize, немного различается в зависимости от типа элемента управления и значения свойства AutoSizeMode
, если оно существует. В таблице ниже описаны варианты поведения, которые действуют всегда, с кратким описанием каждого из них.
Всегда истинное поведение | Description |
---|---|
Автоматическое изменение размера — это функция, активируемая во время выполнения. | Это означает, что она никогда не увеличивает и не сжимает элемент управления и не оказывает дальнего влияния. |
Если размер элемента управления изменяется, значение его свойства Location всегда остается постоянным. | Когда содержимое элемента управления приводит к увеличению элемента управления, он увеличивается в направлении вправо и вниз. Элементы управления не увеличиваются до левого края. |
Свойства Dock и Anchor учитываются, если AutoSize имеет значение true . |
Значение свойства Location элемента управления корректируется на правильное значение. Примечание. Элемент управления Label является исключением из этого правила. Если для свойства AutoSize закрепленного элемента управления Label задано значение true , то элемент управления Label не будет растягиваться. |
Свойства MaximumSize и MinimumSize элемента управления всегда учитываются независимо от значения свойства AutoSize. | Свойство AutoSize не влияет на свойства MaximumSize и MinimumSize. |
Минимальный размер по умолчанию не задан. | Это означает, что если для элемента управления задано сжатие до 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) NumericUpDown RadioButton TextBox TrackBar |
- Свойство AutoSize поддерживается. - Свойство AutoSizeMode поддерживается. |
Button CheckedListBox FlowLayoutPanel Form GroupBox Panel TableLayoutPanel |
— Нет свойства AutoSize. | CheckedListBox ComboBox DataGridView DateTimePicker ListBox ListView MaskedTextBox MonthCalendar ProgressBar PropertyGrid RichTextBox SplitContainer TabControl TabPage TreeView WebBrowser ScrollBar |
AutoSize в среде разработки
В таблице ниже описывается, как изменяется размер элемента управления во время разработки в зависимости от значений свойств AutoSize и AutoSizeMode
.
Чтобы указать, что размер элемента управления должен изменяться пользователем, переопределите свойство SelectionRules. В этой таблице "не может" означает только Moveable, а "может" — AllSizeable и Moveable.
Параметры AutoSize | Возможность изменения размера во время разработки |
---|---|
- AutoSize = true — Нет свойства AutoSizeMode . |
Пользователь не может изменять размер элемента управления во время разработки, за исключением следующих элементов управления: - TextBox - MaskedTextBox - RichTextBox - TrackBar |
- AutoSize = true - AutoSizeMode = GrowAndShrink |
Пользователь не может изменять размер элемента управления во время разработки. |
- AutoSize = true - AutoSizeMode = GrowOnly |
Пользователь может изменять размер элемента управления во время разработки. Если задано свойство Size, пользователь может только увеличивать элемент управления. |
- AutoSize = false , или свойство AutoSize скрыто. |
Пользователь может изменять размер элемента управления во время разработки. |
Примечание.
С целью повышения производительности конструктор Windows Forms в Visual Studio затемняет свойство AutoSize класса Form. Во время разработки форма ведет себя так, как будто свойство AutoSize имеет значение false
, независимо от его фактического значения. Во время выполнения никакие особые правила не применяются, и свойство AutoSize действует в соответствии со своим значением.
См. также
.NET Desktop feedback