Пошаговое руководство. Построение макета на основании абсолютного положения
Обновлен: Ноябрь 2007
При абсолютном позиционировании можно упорядочить дочерние элементы, указав их точное расположение относительно родительского элемента. Например, можно расположить элементы управления в панели, указав левые верхние координаты элементов управления относительно панели. Дополнительные сведения см. в разделе Макет с абсолютным и динамическим положением.
В Windows Presentation Foundation (WPF) для Visual Studio (конструктор) содержится элемент управления «панель» Canvas, который поддерживает абсолютное позиционирование. Элемент управления «панель» Canvas можно использовать для абсолютного позиционирования элементов в приложениях.
![]() |
---|
По возможности следует использовать динамический макет. Динамические макеты являются самыми гибкими, адаптируются к изменениям содержимого, таким как локализация, и позволяют конечному пользователю осуществлять наиболее полный контроль за средой. Примеры динамических макетов см. в разделах Пошаговое руководство. Создание масштабируемого приложения с помощью конструктора WPF и Пошаговое руководство. Построение динамического макета. |
В данном пошаговом руководстве выполняются следующие задачи.
Создание приложения WPF.
Добавление элемента управления «панель» Canvas в приложение.
Добавление в панель элементов управления.
Тестирование макета.
На следующем рисунке показано, как будет выглядеть приложение.
![]() |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или версии среды. Для изменения параметров выберите пункт Импорт и экспорт параметров в меню Сервис. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Ниже приведены компоненты, которые необходимы для выполнения данного пошагового руководства.
- Visual Studio 2008
Создание проекта
Первым этапом является создание проекта приложения.
Создание проекта
Создайте новый проект приложения WPF на языке Visual Basic или Visual C# с именем AbsoluteLayout. Дополнительные сведения см. в разделе Практическое руководство. Создание нового проекта приложения WPF.
Примечание.
В данном пошаговом руководстве не требуется написания кода. Язык, выбранный для проекта, используется в приложении для страниц с кодом программной части.
В WPF (конструктор) откроется файл Window1.xaml.
В представлении конструктора выберите окно. Дополнительные сведения см. в разделе Практическое руководство. Выбор и перемещение элементов в область конструктора.
В окне Свойства задайте значения следующих свойств для объекта Window:
Свойство
Значение
Width
400
Height
200
Совет.
Можно также использовать маркеры изменения размеров окна в представлении конструктора.
(Необязательно) Чтобы заблокировать размер окна, воспользуйтесь одним из перечисленных ниже способов.
В меню Файл выберите Сохранить все.
Добавление элемента управления «панель»
По умолчанию новое приложение WPF содержит объект Window с панелью Grid. Для создания макета на основе абсолютного позиционирования необходимо использовать панель Canvas. В этой процедуре удаляется используемая по умолчанию панель Grid и добавляется панель Canvas.
Добавление элемента управления «панель»
В представлении конструктора выберите сетку.
Нажмите клавишу DELETE для удаления панели Grid.
В Панели элементов в группе Элементы управления перетащите элемент управления Canvas на объект Window.
В окне Свойства установите для свойства «Height» элемента управления Canvas значение «Auto».
В окне Свойства установите для свойства «Width» элемента управления Canvas значение «Auto».
В меню Файл выберите Сохранить все.
Добавление в панель элементов управления
Далее следует добавить элементы управления в панель и использовать вложенные свойства Left и Top элемента управления Canvas для их абсолютного позиционирования.
Добавление в панель элементов управления
В Панели элементов перетащите из группы Общие элемент управления Label на элемент управления Canvas.
В окне Свойства установите следующие свойства для Label:
Свойство
Значение
Content
Имя:
Canvas.Left
20
Canvas.Top
20
Width
120
Height
23
В Панели элементов перетащите из группы Общие элемент управления Label на элемент управления Canvas.
В окне Свойства установите следующие свойства для Label:
Свойство
Значение
Content
Пароль:
Canvas.Left
20
Canvas.Top
60
Width
120
Height
23
В Панели элементов перетащите из группы Общие элемент управления TextBox на элемент управления Canvas.
В окне Свойства задайте значения следующих свойств для элемента управления TextBox:
Свойство
Значение
Canvas.Left
160
Canvas.Top
20
Width
200
Height
23
В Панели элементов перетащите из группы Общие элемент управления TextBox на элемент управления Canvas.
В окне Свойства задайте значения следующих свойств для элемента управления TextBox:
Свойство
Значение
Canvas.Left
160
Canvas.Top
60
Width
200
Height
23
В Панели элементов перетащите из группы Общие элемент управления Button на элемент управления Canvas.
В окне Свойства задайте значения следующих свойств для элемента управления Button:
Свойство
Значение
Content
ОК
Canvas.Left
196
Canvas.Top
120
Width
75
Height
23
В Панели элементов перетащите из группы Общие элемент управления Button на элемент управления Canvas.
В окне Свойства задайте значения следующих свойств для элемента управления Button:
Свойство
Значение
Content
Отмена
Canvas.Left
283
Canvas.Top
120
Width
75
Height
23
В меню Файл выберите Сохранить все.
Тестирование макета
Теперь запустите приложение и проверьте, соблюдается ли для элементов управления абсолютное позиционирование.
Тестирование макета
(Необязательно) Если на предыдущем шаге размер окна был заблокирован, то для выполнения этой процедуры его необходимо разблокировать. В окне Свойства задайте значения следующих свойств для объекта Window:
Свойство
Значение
MinWidth
0
MinHeight
0
MaxWidth
Infinity
MaxHeight
Infinity
ResizeMode
CanResize
В меню Отладка выберите команду Начать отладку.
Запускается приложение и открывается окно.
Измените размеры окна.
Для элементов управления соблюдается абсолютное позиционирование и их размер или расположение не изменяется.
Закройте окно.
Объединение частей приложения
Ниже приведен пример готового файла Window1.xaml.
<Window x:Class="Window1"
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="200" Width="400" ResizeMode="CanResize" Name="Window1" MinWidth="0" MinHeight="0" MaxWidth="Infinity" MaxHeight="Infinity">
<Canvas Height="Auto" Name="Canvas1" Width="Auto">
<Label Canvas.Left="20" Canvas.Top="20" Height="23" Width="120" Name="Label1">Name:</Label>
<Label Canvas.Left="20" Canvas.Top="60" Height="23" Width="120" Name="Label2">Password:</Label>
<TextBox Canvas.Left="160" Canvas.Top="20" Height="23" Width="200" Name="TextBox1" />
<TextBox Canvas.Left="160" Canvas.Top="60" Height="23" Width="200" Name="TextBox2" />
<Button Canvas.Left="196" Canvas.Top="120" Height="23" Width="75" Name="Button1">OK</Button>
<Button Canvas.Left="283" Canvas.Top="120" Height="23" Width="75" Name="Button2">Cancel</Button>
</Canvas>
</Window>
См. также
Задачи
Практическое руководство. Построение макета на основе абсолютного положения
Основные понятия
Выравнивание в конструкторе WPF
Общие сведения о конструкторе WPF