TOC

This article is currently in the process of being translated into Ukrainian (~57% done).

Контейнери:

Вступ до контейнерів WPF

Контейнери одні з найважливіших типів контроллерів у WPF. Вони виконують роль контейнерів для інших контролів, і забезпечують компоновку у вікнах/сторінках. Так як вікно може мати тільки ОДИН дочірній контрол, контейнери зазвичай використовують для поділу простору на області, де кожна область може містити контрол або інший контейнер(котрий, звичайно, також є контролом).

Контейнери представлені у декількох варіантах, кожен з яких має власний спосіб взаємодії з компоновкою та дочірніми контролами. Обрання правильного контейнеру є важливим задля забезпечення бажаної поведінки і компоновки елементів, особливо на початку роботи з WPF, це може викликати труднощі. Наступний розділ містить короткий опис кожного виду контейнерів та можливості для їх застосування. Після цього, вони будуть розглянуті детально в наступних главах.

Canvas(канва)

Простий контейнер, котрий подібен поведінкою до WinForms. Він дозволяє встановлювати визначені координати кожному з дочірніх контролів, даючи повний контроль над компоновко. Але це накладає обмеження на гнучкість, тому що вам потрібно вручну переміщувати дочірні контроли і перевіряти, що вони вірівнюються у той спосіб, що вам потрібний. Варто використовувати тільки у випадку коли потрібний повний контроль, над позицією дочірніх елементів.

WrapPanel

Контейнер WrapPanel дозволяє розташовувати дочірні контроли один до одного, горизонтально (за замовчуванням) або вертикально, до того моменту коли наявного простору буде недостатньо, у цьому випадку наступні контроли буде розташованно на новому рядку/стовпці і т. д. Варто використовувати у випадку, якщо потрібний вертикальний або горизонтальний набір контролів, що можуть бути перенесені у випадку недостатньості вільного місця.

StackPanel

Контейнер StackPanel має дуже схожу поведінку з контейнером WrapPanel, проте замість переносу дочірніх контролів у випадку коли вільного місця недостатньо, він розширяє самого себе, якщо це можливо. Орієнтація визначається також як і у контейнера WrapPanel, вертикально або горизонтально, проте замість вирівнювання ширини або висоти за найбільшим з показників дочірніх контролів, кожний з них розтягується для заповнення ширини або висоти. Використовувати StackPanel варто коли потрібен набір контролів, що займуть усе доступне місце, без переносу.

DockPanel

The DockPanel allows you to dock the child controls to the top, bottom, left or right. By default, the last control, if not given a specific dock position, will fill the remaining space. You can achieve the same with the Grid panel, but for the simpler situations, the DockPanel will be easier to use. Use the DockPanel whenever you need to dock one or several controls to one of the sides, like for dividing up the window into specific areas.

Grid

The Grid is probably the most complex of the panel types. A Grid can contain multiple rows and columns. You define a height for each of the rows and a width for each of the columns, in either an absolute amount of pixels, in a percentage of the available space or as auto, where the row or column will automatically adjust its size depending on the content. Use the Grid when the other panels doesn't do the job, e.g. when you need multiple columns and often in combination with the other panels.

UniformGrid

The UniformGrid is just like the Grid, with the possibility of multiple rows and columns, but with one important difference: All rows and columns will have the same size! Use this when you need the Grid behavior without the need to specify different sizes for the rows and columns.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!