This article has been localized into Russian by the community.
Панели WPF, введение
Панели - один из самых важных элементов управления WPF. Они действуют как контейнеры для других элементов управления и контролируют расположение ваших окон / страниц. Поскольку окно может содержать только один дочерний элемент управления, панель часто используется для разделения пространства на области, где каждая область может содержать элемент управления или другую панель (которая также является элементом управления).
Существует несколько разных вариантов панелей, каждый из которых имеет свой собственный способ управления расположением дочерних элементов управления. Поэтому выбор правильной панели необходим для получения желаемого поведения и расположения, и особенно в начале вашей карьеры WPF, это может быть трудной задачей. В следующем разделе кратко рассказывается о каждой из панелей и дается представление о том, когда ее использовать. После этого перейдите к следующим главам, где каждая из панелей будет описана подробно.
Canvas
Простая панель, которая имитирует работу WinForms. Позволяет назначать определенные координаты для каждого из дочерних элементов управления, что дает вам полный контроль над макетом. Это не очень гибко, потому что вам нужно вручную перемещать дочерние элементы управления и следить за тем, чтобы они соответствовали вашим пожеланиям. Используйте его (только), когда вы хотите полностью контролировать позиции дочерних элементов управления.
WrapPanel
WrapPanel располагает каждый из своих дочерних элементов управления рядом с другим, горизонтально (по умолчанию) или вертикально, пока достаточно места. Следующий элемент будет перенесен на следующую строку и так далее. Используйте его, когда вы хотите, чтобы элементы управления следовали друг за другом по горизонтали или вертикали и автоматически перемещались на следующую строку (в следующий столбец), когда больше нет места.
StackPanel
StackPanel действует так же, как WrapPanel, но вместо того, чтобы переносить дочерние элементы управления, если они занимают слишком много места, он просто расширяется, если это возможно. Как и в случае с WrapPanel, ориентация может быть горизонтальной или вертикальной, но вместо того, чтобы регулировать ширину или высоту дочерних элементов управления на основе самого большого элемента, каждый элемент растягивается, чтобы получить всю доступную ширину или высоту. Используйте StackPanel, если вам нужен список элементов управления, которые занимают всё доступное пространство, без переноса.
DockPanel
DockPanel позволяет прикреплять дочерние элементы управления сверху, снизу, слева или справа. По умолчанию последний элемент управления, если ему не задана конкретная позиция, заполнит оставшееся пространство. Вы можете добиться этого же с помощью панели Grid, но для более простых ситуаций DockPanel будет проще в использовании. Используйте DockPanel, когда вам нужно состыковать один или несколько элементов управления с одной из сторон, например, для разделения окна на определенные области.
Grid
Grid, вероятно, самый сложный из типов панелей. Grid может содержать несколько строк и столбцов. Вы определяете высоту для каждой из строк и ширину для каждого из столбцов в абсолютном количестве пикселей, в процентах от доступного пространства или автоматически, когда строка или столбец автоматически корректируют свой размер в зависимости от содержания. Используйте Grid, когда другие панели не подходят, например, когда вам нужно несколько столбцов и часто в сочетании с другими панелями.
UniformGrid
UniformGrid похож на Grid, с поддержкой нескольких строк и столбцов, но с одним важным отличием: все строки и столбцы будут иметь одинаковый размер! Используйте это, когда вам нужно поведение Grid без необходимости указывать разные размеры для строк и столбцов.