Свойство AutoSize
Обновлен: Ноябрь 2007
Свойство AutoSize позволяет при необходимости изменять размеры элемента управления в соответствии со значением свойства PreferredSize. Способ изменения размера для определенного элемента управления настраивается с помощью свойства AutoSizeMode.
Автоматическое изменение размеров
Свойство AutoSize поддерживается только некоторыми элементами управления. Кроме того, некоторые элементы управления, поддерживающие свойство AutoSize, также поддерживают свойство AutoSizeMode.
Свойство AutoSize может работать несколько по-разному в зависимости от типа элемента управления и значения свойства AutoSizeMode, если оно существует. В следующей таблице приводятся обязательные особенности данного свойства с кратким описанием каждого из них.
Обязательные особенности |
Описание |
---|---|
Автоматическое изменение размеров — это функция времени выполнения. |
Это значит, что она не может использоваться для увеличения или уменьшения размеров элемента управления без последующих изменений. |
При изменении размеров элемента управления значение его свойства Location всегда остается постоянным. |
Если размеры элемента управления изменяются в соответствии с содержимым, он растягивается вправо и вниз. Элементы управления не могут растягиваться влево. |
Если свойство AutoSize имеет значение true, учитываются значения свойств Dock и Anchor. |
Значение свойства Location элемента управления корректируется. Note Элемент управления Label является исключением из этого правила. При присвоении свойству AutoSize закрепленного элемента управления Label значения true элемент управления Label не растягивается. |
Свойства MaximumSize и MinimumSize элемента управления учитываются вне зависимости от значения его свойства AutoSize. |
Свойство AutoSize не оказывает влияния на значения свойств MaximumSize и MinimumSize. |
Минимальный размер по умолчанию не устанавливается. |
Это означает, что если в соответствии со свойством AutoSize размеры элемента управления должны уменьшаться и в настоящий момент в нем нет содержимого, свойство Size принимает значение 0,0. В этом случае размеры элемента уменьшатся до точки, и он станет невидимым. |
Если в элементе управления не реализован метод 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 |
Тип элемента управления |
---|---|
|
MaskedTextBox (базовый класс TextBox) |
|
|
|
AutoSize в среде разработки
В следующей таблице описываются способы изменения размеров элемента управления во время разработки в соответствии со значениями свойств AutoSize и AutoSizeMode.
Чтобы определить, может ли пользователь изменять размер данного элемента управления, следует переопределить свойство SelectionRules. В следующей таблице выражение "не может" означает только Moveable, выражение "может" означает AllSizeable и Moveable.
Параметры свойства AutoSize |
Операция изменения размера во время разработки |
---|---|
|
Пользователь не может изменять размеры элемента управления во время разработки за исключением следующих элементов управления. |
|
Пользователь не может изменять размеры элемента управления во время разработки. |
Пользователь может изменять размеры элемента управления во время разработки. Если задано значение свойства Size, пользователь может только увеличивать размеры элемента управления. |
|
Пользователь может изменять размеры элемента управления во время разработки. |
Примечание. |
---|
В целях повышения производительности конструктор Windows Forms скрывает свойство AutoSize класса Form. Во время разработки поведение формы соответствует значению свойства AutoSize = false вне зависимости от фактической настройки. Во время выполнения оптимизация не производится, и свойство AutoSize применяется в соответствии с фактическим значением. |