WPF, StackPanel
Панель StackPanel – один із найпростіших контейнерів компонування. Вона просто укладає свої дочірні елементи в один рядок чи стовпчик. Наприклад, розглянемо наступне вікно:

За умовчанням панель StackPanel має елементи зверху вниз, встановлюючи висоту кожного з них таку, яка необхідна для відображення його вмісту. У цьому прикладі це означає, що розмір міток, текстових полів та кнопок встановлюється досить великим для спокійного розміщення тексту всередині них. Всі елементи розтягуються на повну ширину StackPanel, яка дорівнює ширині вікна. Якщо ви розширите вікно, StackPanel також розшириться і кнопки розтягнуться, щоб заповнити її.
StackPanel може також використовуватися для впорядкування елементів горизонтально за рахунок установки властивості Orientation:
Тепер елементи отримують свою мінімальну ширину (достатню, щоб вмістити їх текст) і розтягуються до повної висоти, щоб заповнити панель, що містить їх. Залежно від поточного розміру вікна це може призвести до того, що деякі елементи не помістяться.
Властивості компонування
Хоча компонування визначається контейнером, дочірні елементи можуть сказати своє слово. Панелі компонування взаємодіють зі своїми дочірніми елементами через невеликий набір властивостей компонування, наведених нижче:
Визначає позиціонування дочірнього елемента всередині контейнера компонування, коли є додатковий простір по горизонталі. Доступні значення: Center, Left, Right або Stretch
VerticalAlignment
Визначає позиціонування дочірнього елемента в контейнері компонування, коли є додатковий простір по вертикалі. Доступні значення: Center, Top, Bottom або Stretch
Margin
Додає деяке місце навколо елемента. Властивість Margin - це екземпляр структури System.Windows.Thickness, з окремими компонентами для верхньої, нижньої, лівої та правої граней
MinWidth, MinHeight
Встановлює мінімальний розмір елемента. Якщо елемент занадто великий, щоб поміститися в його контейнер компонування, він буде усічений
MaxWidth, MaxHeight
Встановлює максимальний розмір елемента. Якщо контейнер має вільний простір, елемент не буде збільшений понад зазначені межі, навіть якщо властивості HonzontalAlignment і VerticalAlignment встановлені в Stretch
Width, Height
Очевидно встановлюють розміри елемента. Ця установка перевизначає значення Stretch для властивостей HorizontalAlignment та VerticalAlignment. Однак цей розмір не буде встановлений, якщо виходить за межі, задані MinWidth, MinHeight, MaxWidth і MaxHeight
Всі ці властивості успадковані від базового класу FrameworkElement і тому підтримуються всіма графічними елементами (віджетами), які можна використовувати у вікні WPF.
Як відомо, різні контейнери компонування можуть надавати приєднані властивості дочірнім елементам. Наприклад, всі дочірні елементи об'єкта Grid отримують властивості Row і Column, що дозволяють їм вибирати комірку, в якій вони мають розміститися. Приєднані властивості дозволяють встановлювати інформацію, специфічну для певного контейнера компонування.