Макет с абсолютным и динамическим положением
Обновлен: Ноябрь 2007
При создании окна в приложении необходимо решить, как будет осуществляться размещение элементов управления в этом окне. Также необходимо решить, как будут вести себя элементы управления в окне при изменении пользователем размеров окна. Далее перечислены проблемы, возникающие при абсолютном и динамическом позиционировании.
При создании окна в приложении задается его размер и размер элементов управления в этом окне. Необходимо решить, как будут вести себя окно и элементы управления при изменении их содержимого. Например, при добавлении в окно элемента управления «подпись» можно указать поведение подписи в случае перевода ее текста на другой язык. Далее приведены проблемы, связанные с динамическим изменением размера.
Типы макетов
Ниже приведены три типа макетов, которые можно создавать в Windows Presentation Foundation (WPF) для Visual Studio (конструктор):
Абсолютный
Дочерние элементы размещаются путем их точного расположения относительно родительского элемента. Например, можно расположить элементы управления в панели, указав левые верхние координаты элементов управления относительно панели. Дочерние элементы не перемещаются при изменении размера родительского элемента. Дополнительные сведения см. в разделе Практическое руководство. Построение макета на основе абсолютного положения или Пошаговое руководство. Построение макета на основании абсолютного положения.Динамический
Дочерние элементы размещаются в соответствии с указанием порядка их размещения и заключения в оболочку относительно родительского элемента. Например, можно упорядочить элементы управления в панели и указать, что они должны заключаться в оболочку по горизонтали. Если родительский элемент уменьшается, то дочерние элементы переходят на следующую строку. Если родительский элемент увеличивается, то дочерние элементы переходят на предыдущую строку. Дополнительные сведения см. в разделе Практическое руководство. Построение динамического макета или Пошаговое руководство. Построение динамического макета.Динамический, управляемый данными
Элемент управления привязывается к данным. Элемент управления заполняется данными, а размеры строк и столбцов автоматически подбираются в соответствии с данными.
По возможности следует использовать динамический макет. Динамические макеты являются наиболее гибкими и позволяют пользователям осуществлять полный контроль за средой. Динамический макет позволяет содержимому адаптироваться к локализации и другим изменениям содержимого. Абсолютные макеты должны быть зарезервированы для случаев, когда важно точное и неизменяемое положение элементов, или в случае только одного дочернего элемента, например изображения или графики.
Примечание. |
---|
Абсолютный и динамический макеты можно комбинировать. Например, окно может быть создано по динамическому макету, но одна его часть использует абсолютное позиционирование. |
Панели
WPF предоставляет множество элементов управления Panel, поддерживающих абсолютное и динамическое позиционирование. Элементы управления «панель» могут быть объединены путем добавления одного элемента управления «панель» как дочернего элемента другого. Для размещения элементов в приложениях можно использовать следующие элементы управления «панель»:
Панель |
Тип макета |
Описание |
---|---|---|
Динамический |
Определяет область, в которой можно разместить дочерние элементы по строкам и столбцам. |
|
Динамический |
Определяет область, где можно упорядочить и расположить дочерние элементы вдоль верхнего, нижнего, левого или правого краев. |
|
Динамический |
Автоматически последовательно располагает дочерние элементы, перемещая содержимое на следующую строку на границе родительского контейнера. Упорядочение происходит последовательно сверху вниз или слева направо, в зависимости от того, какая ориентация установлена: по горизонтали или по вертикали. |
|
Динамический |
Автоматически упорядочивает дочерние элементы в отдельную строку, которая может быть ориентирована горизонтально или вертикально. |
|
Динамический |
Автоматически упорядочивает дочерние элементы в строках и столбцах. Строки и столбцы расположены равномерно. Если элемент не помещается в ячейку, то производится его усечение. |
|
Абсолютный |
Определяет область, в которой можно разместить дочерние элементы явным образом с помощью координат. |
Элементы управления
WPF предоставляет элементы управления, поддерживающие динамическое позиционирование, управляемое данными. Эти элементы управления могут быть привязаны к данным и автоматически изменять размер в соответствии с размером данных. Для динамического отображения данных в приложениях можно использовать следующие элементы управления:
Элемент управления |
Тип макета |
Описание |
---|---|---|
Динамический, управляемый данными |
Отображает список элементов данных. |
|
Динамический, управляемый данными |
Отображает элементы данных в столбцах для элемента управления «список». |
Динамическое изменение размера
При динамическом изменении размера элементы управления настраиваются таким образом, что они автоматически расширяются или сжимаются в соответствии с содержимым. Например, если размер элемента управления «подпись» устанавливается в соответствии с текстом на одном языке, а текст переводится на другой язык, то можно настроить подпись для автоматического изменения размера по размеру нового текста. Динамическое позиционирование поддерживает динамическое изменение размеров путем автоматической настройки положения элементов управления при изменении их размеров.
Ниже перечислены свойства, которые можно задать при создании динамических макетов.
Свойство |
Значения |
Применение |
Примечания |
---|---|---|---|
double, Auto, * |
Окна, элементы управления, столбцы сетки. |
Для максимальной гибкости используйте значения размера «Auto» и «*». Дополнительные сведения см. в следующем разделе. Значение «*» применяется только к столбцам сетки. |
|
double, Auto, * |
Окна, элементы управления, строки сетки. |
Для максимальной гибкости используйте значения размера «Auto» и «*». Дополнительные сведения см. в следующем разделе. Значение «*» применяется только к строкам сетки. |
|
double |
Окна, элементы управления, столбцы сетки. |
Для максимальной гибкости установите значение «0». |
|
double |
Окна, элементы управления, строки сетки. |
Для максимальной гибкости установите значение «0». |
|
double, Infinity |
Окна, элементы управления, столбцы сетки. |
Для максимальной гибкости задайте значение «Infinity». |
|
double, Infinity |
Окна, элементы управления, строки сетки. |
Для максимальной гибкости задайте значение «Infinity». |
|
Окна |
Для максимальной гибкости установите значение CanResize. Это позволит пользователю изменять размер окна. |
||
Окна |
Для максимальной гибкости установите значение WidthAndHeight. Это позволит окну автоматически изменять размер при расширении его содержимого. |
Значения размера «AUTO» и «*»
Автоматическое изменение размеров используется для соответствия размеров элементов управления их содержимому, даже если размер содержимого изменяется. Значение размера «*» используется для пропорционального распределения доступного места среди строк и столбцов сетки. В языке XAML значения «звездочка» выражаются в виде «*» (или «n*»). Например, при наличии таблицы с 4 столбцами ширину столбцов можно задать следующим образом:
Столбец 1 |
Auto |
Размер столбца будет изменяться в соответствии с размером содержимого. |
Столбец 2 |
* |
После вычисления столбцов со значением «Auto» столбец получает часть оставшейся ширины. Столбец 2 будет вдвое уже, чем столбец 4. |
Столбец 3 |
Auto |
Размер столбца будет изменяться в соответствии с размером содержимого. |
Столбец 4 |
2* |
После вычисления столбцов со значением «Auto» столбец получает часть оставшейся ширины. Столбец 4 будет вдвое шире, чем столбец 2. |
Дополнительные сведения см. в разделе Star.
См. также
Основные понятия
Выравнивание в конструкторе WPF
Общие сведения о конструкторе WPF