TOC

This article has been localized into Ukrainian by the community.

Контейнери:

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

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

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

Canvas(канва)

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

WrapPanel

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

StackPanel

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

DockPanel

Контейнер DockPanel дозволяє прикріпляти дочірні елементи до свого верху чи низу або до однієї зі своїх сторін. За умовчуванням, якщо в останнього елемента не вибрана конкретна позиція, то він займе весь вільний простір. Те саме можна зробити за допомогою контейнера Grid, однак DockPanel може істотно спростити роботу. Використовуйте його, якщо вам потрібно прикріпити кілька елементів до якоїсь сторони або, щоб поділити вікно на окремі області.

Grid

Grid - це, мабуть, найбільш функціональний вид контейнерів. Він може містити рядки та стовпці. Для яких можна вибрати ширину (для стовпців) та висоту (для рядків). Їх можна задати у абсолютних чи відносних одиницях або залишити автоматичне значення, при якому вибрані елементи займуть простір, необхідний, щоб показати свій вміст. Використовуйте Grid, якщо інші контейнери не справляються, наприклад коли треба розмістити різні контейнери в декількох стовпцях.

UniformGrid

UniformGrid дуже схожий на звичайний Grid. Він має лише одну особливість: всі клітинки в ньому мають однакову ширину та висоту. Використовуйте цей елемент, якшо вам не потрібно задавати окремий розмір для певних елементів.


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!