Підручник з WPF для початківців
⚡ Розумний підсумок
WPF (Windows Презентація Foundation) є Microsoftрамки для створення багатих Windows настільні програми. Початківці дізнаються, як XAML, зв'язування даних та апаратно-прискорена графіка поєднуються для створення масштабованих, візуально насичених інтерфейсів користувача з меншою кількістю коду.

Що таке WPF?
WPF є каркасом для будівництва Windows програми, що дозволяють розробникам створювати насичені користувацькі інтерфейси з 3D-анімацією та насиченими кольорами, використовуючи меншу складність коду. Це векторний механізм рендерингу, який використовує апаратне прискорення сучасних відеокарт, що робить інтерфейс користувача швидшим та масштабованішим. WPF розшифровується як Windows Презентація Foundation.
WPF можна вважати еволюцією порівняно з WinForms. Він забезпечує просту в експлуатації систему графічного відображення для Windows і пропонує чітке розділення між інтерфейсом користувача та бізнес-логікою.
WPF-додатки зазвичай розгортаються як окремі програми для робочого столу, а також можуть бути розміщені як вбудовані об'єкти в інших додатках.
Чому WPF?
Існує багато причин для використання платформи WPF. Ось деякі з найпоширеніших:
- Ідеальна платформа для використання, якщо вам потрібно працювати з різними типами медіа
- WPF дозволяє створювати інтерфейс користувача з індивідуальним дизайном. Це також допомагає, коли потрібно завантажити частину інтерфейсу користувача або прив'язати XML-дані.
- Це дозволяє вам скористатися перевагами великої бібліотеки класів .NET, на якій вона побудована Технологія .NET
- Незалежність від роздільної здатності, тому програми, розроблені за допомогою WPF, можуть працювати на невеликих екранах планшетів або 20-дюймовому моніторі
- WPF базується на DirectX замість WinAPI. Він використовує графічну систему клієнтського комп'ютера, тому пропонує більшу потужність графічного рендерингу.
- Підтримує модель потокового документа, яка забезпечує якість верстки «настільної публікації»
- Зовнішній вигляд та поведінка слабо пов'язані. Це дозволяє дизайнерам та розробникам працювати над двома окремими моделями.
- У фреймворку WPF ви можете графічно проектувати інструменти, використовуючи прості XML-документи замість парсингу коду.
- Дозволяє використовувати апаратне прискорення для малювання графічного інтерфейсу для кращої продуктивності
Далі давайте розглянемо, як фреймворк розвивався з часом.
Історія WPF
Windows 1.0 було першим графічним середовищем від MicrosoftВін працював як шар поверх DOS, покладаючись на системи GDI та USER для графіки та інтерфейсу користувача.
DirectX було представлено в 1995 році як високопродуктивна графічна система, призначена для ігор та інших середовищ, пов'язаних з графікою. Протягом багатьох років було випущено багато версій, і DirectX 9 пропонував бібліотеку, яку можна було використовувати з керованим кодом .NET.
| Версія WPF | рік випуску | .Net версія | Версія Visual Studio | Функції |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | N / A | Початковий випуск. Однак розробку WPF можна зробити за допомогою VS 2005. |
| 3.5 | 2007 | 3.5 | VS2008 | Модифікація та вдосконалення: Модель застосунку, зв'язування, елементи керування, документи, анотації та елементи 3D-інтерфейсу. |
| 3.5 SP1 | 2008 | 3.5 SP1 | N / A | Вбудована підтримка екрану-заставки. Нове керування веб-браузером, підтримка піксельних шейдерів DirectX. |
| 4.0 | 2010 | 4.0 | VS2010 | Нові елементи керування: Календар, DataGrid, DatePicker. Підтримка мультитач та маніпуляцій. |
| 4.5 | 2012 | 4.5 | VS2012 | Швидший запуск, покращена продуктивність під час відображення великих наборів даних. Новий елемент керування «Стрічка» та інтерфейс INotifyDataErrorInfo для перевірки даних. |
| 4.5.1 | 2013 | 4.5.1 | VS2013 | Незначні покращення продуктивності та надійності. |
| 4.5.2 | 2014 | 4.5.2 | NA | Без істотних змін |
| 4.6 | 2015 | 4.6 | VS2015 | Підтримка прозорого дочірнього вікна Покращення HDPI та Touch |
| 4.8 | 2019 | 4.8 | VS2019 | Фінальний великий випуск .NET Framework з виправленнями для високої роздільної здатності та покращеннями спеціальних можливостей. |
| .NET Core 3.0 та новіших версій | 2019-теперішній | .NET Core 3.0 до .NET 10 | ПРОТИ 2019/2022 | WPF стає програмним забезпеченням з відкритим вихідним кодом і постачається з сучасним .NET (додатки залишаються Windows-тільки). |
WPF більше не має окремої версії від .NET. З 2019 року він постачається як компонент з відкритим кодом сучасної платформи .NET, а поточний реліз включено до .NET 10, який вийшов у листопаді 2025 року як версія з довгостроковою підтримкою (LTS).
Особливості WPF
На діаграмі нижче згруповано основні можливості WPF, детальний перелік яких наведено після неї.

- Документи та друк
- Безпека, доступність і локалізація
- Пропонує взаємодію з Windows Елементи керування формами
- Direct3D використовується в графічних програмах, де важлива продуктивність
- Використовує апаратне забезпечення відеокарти для візуалізації
- Векторна графіка дозволяє масштабувати ваш додаток без втрати якості
- WPF підтримує логічну піксельну систему з плаваючою комою та 32-бітний колір ARGB.
- Перевизначення стилів і шаблонів елементів керування
- Створення міжнародних шрифтів із складених шрифтів
- Рендеринг тексту WPF використовує переваги технології ClearType
- Дозволяє використовувати техніку кешування попередньо відтвореного тексту у відеопам'яті
- Ресурсно-орієнтований підхід для кожного елемента керування
- Таймери презентації ініціалізуються та керуються WPF
- Також підтримується зв’язок між відео та анімацією
- У WPF стиль – це набір властивостей, які слід застосовувати до контенту, що використовується для візуального рендерингу.
- Шаблони в WPF допомагають змінити інтерфейс користувача вашого документа.
- Команди - це більше пресуtract та слабозв'язана версія подій
- Підтримка WPF для команд зменшує кількість коду, який нам потрібно написати
Далі в цьому WPF Підручник C#, ми дізнаємося про основні типи та інфраструктуру WPF.
Основні типи та інфраструктури WPF
Класи в WPF поділяються на чотири різні типи:
- UIElement
- FrameworkElement
- ContentElement
- FrameworkContentElement
Ці класи відомі як класи базових елементів. Вони забезпечують основу для моделі створення користувацьких інтерфейсів.
Користувацькі інтерфейси WPF складаються з елементів, зібраних у деревоподібну ієрархію, яка називається деревом елементів. Дерево елементів — це інтуїтивно зрозумілий спосіб розміщення користувацьких інтерфейсів, і це структура, за допомогою якої ви отримуєте потужні служби інтерфейсу користувача.
XAML
Розширювана мова розмітки застосунків, яка називається «XAML» (вимовляється «заммель»), — це декларативний спосіб визначення користувацьких інтерфейсів.
Ось визначення простої кнопки в XAML:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Переваги використання мови XAML:
- XAML відокремлює зовнішній вигляд фронтенду від логіки серверної частини
- XAML є найпростішим способом представлення інтерфейсів користувача
- XAML ефективно працює з інструментами проектування
Controls
Фреймворк WPF підтримує багато корисних елементів керування, таких як:
- Елементи керування редагуванням, як-от ТекстBox, ПеревіртеBox, Радіо-кнопка
- Елементи керування списком, наприклад списокBox, ListView, TreeView
- Інформація про користувача, наприклад Label, WPF ProgressBar, ToolTip
- Такі дії, як меню, кнопка та панель інструментів
- Такі елементи зовнішнього вигляду, як межа, зображення WPF і вікно перегляду
- Поширені діалогові вікна, такі як OpenFileDialog та PrintDialog
- Контейнери, такі як TabControl, ScrollBar та GroupBox
- Макети, такі як DockPanel, StackPanel та Grid
- Навігація, наприклад фрейм і гіперпосилання
Зовнішній вигляд елементів керування можна налаштувати за допомогою стилів і шаблонів без програмування. Ви також можете створити спеціальний елемент керування, створивши новий клас із відповідного базового класу.
Зовнішній вигляд
WPF надає функцію для налаштування зовнішнього вигляду вашої програми. Це дозволяє встановлювати об’єкти та значення для таких речей, як шрифти, фони тощо.
Функція стилів дозволяє стандартизувати певний вигляд для всього продукту. Це дозволяє замінити зовнішній вигляд за замовчуванням, зберігаючи типову поведінку.
Шаблон даних дозволяє керувати візуалізацією зв'язаних даних за замовчуванням. За допомогою тем можна легко застосовувати візуальні стилі операційної системи.
Макет і панелі
Макет допомагає вам правильно розташувати та змінити розмір елементів керування. Це частина процесу створення презентації для користувача. Фреймворк WPF спрощує процес макетування та пропонує кращу адаптивність зовнішнього вигляду інтерфейсу користувача.
Інфраструктура макета пропонується п'ятьма основними класами: 1) StackPanel, 2) DockPanel, 3) WrapPanel, 4) Grid та 5) Canvas
Графіка
WPF забезпечує покращену графічну систему:
- WPF використовує апаратно-незалежні одиниці, що забезпечує роздільну здатність та незалежність від пристрою. Кожен апаратно-незалежний піксель автоматично масштабується відповідно до системного налаштування точок на дюйм.
- WPF використовує double замість float і підтримує більший набір кольорів
- Графічний механізм WPF розроблений таким чином, що він може використовувати переваги графічного апаратного забезпечення, коли воно доступне
Документи та друк
Фреймворк WPF пропонує три типи документів:
- Виправлені документи: Цей тип документів підтримує WYSIWПрезентація YG.
- Поточні документи: Дозволяє налаштовувати та перекомпоновувати вміст на основі змінних часу виконання, таких як розмір вікна та роздільна здатність пристрою.
- Документи XPS: Пагіноване представлення електронного паперу у форматі на основі XML. XPS — це відкритий, стандартизований формат документів.
WPF забезпечує кращий контроль над системою друку, включаючи віддалений друк та черги. Крім того, документи XPS можна друкувати безпосередньо, без перетворення їх у формат друку.
Розглянувши будівельні блоки, давайте подивимося, як ці частини поєднуються між собою всередині.
WPF Archiтектура
WPF є частиною .NET framework. Він містить як керований, так і некерований код. Важливі компоненти архітектури WPF пояснюються на рисунку нижче:
Компоненти архітектури WPF
- PresentationFrameworkДопомагає створювати елементи верхнього рівня, такі як елементи керування, стилі, макет, вікна тощо.
- PresentationCoreВін містить базові типи, такі як UIElement та Visual, від яких походять усі елементи керування та фігури в PresentationFramework.dll.
- CLR: це робить процес розробки продуктивним, пропонуючи такі функції, як управління пам'яттю, обробка помилок тощо.
- Milcore: Milcore є частиною некерованого коду, який забезпечує тісну інтеграцію з DirectX.
- DirectX: Це низькорівневий API, який рендерить графіку WPF. DirectX взаємодіє з драйверами та рендерить контент.
- Користувач32: Це основний API, який широко використовується багатьма програмами. Він керує пам'яттю та розділенням процесів. User32 допомагає вам вирішити, який елемент буде розміщено де на екрані.
- ядро: Вхідні дані надходять як сигнал на драйвер пристрою в режимі ядра та спрямовуються до правильного процесу шляхом підключення до Windows ядро та User32.
Прив'язка даних WPF
Прив'язка даних – одна з найпотужніших концепцій у WPF. Замість написання коду, який вручну копіює значення між елементами керування та об'єктами, ви оголошуєте з'єднання в XAML, і WPF автоматично синхронізує обидві сторони. Наприклад:
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
WPF підтримує чотири режими зв'язування:
- Односторонній рух: Елемент керування оновлюється, коли змінюються вихідні дані
- Двосторонній рух: Зміни протікають в обох напрямках між керуванням та джерелом
- Одноразово: Елемент керування зчитує вихідне значення лише один раз, під час завантаження
- OneWayToSource: Елемент керування передає своє значення джерелу, а не навпаки.
Прив'язка даних також є рушієм шаблону MVVM (Model-View-ViewModel), найпоширенішої архітектури для професійних WPF-застосунків, оскільки вона дозволяє представленню залишатися в XAML, тоді як логіка знаходиться в тестованих класах C#.
💡 Порада: Реалізуйте інтерфейс INotifyPropertyChanged у своїх класах даних. Без нього інтерфейс користувача не оновлюватиметься, коли значення властивостей змінюються в коді.
Встановлення WPF
Щоб встановити WPF, перейдіть за цим посиланням: https://www.guru99.com/download-install-visual-studio.html
Далі в цьому посібнику з WPF-застосунку ми створимо наш перший WPF-застосунок.
Як створити свою першу програму WPF?
У цьому прикладі WPF ми розробимо базовий WPF-застосунок. Отже, давайте почнемо просту реалізацію, виконавши кроки, наведені в прикладі WPF-застосунку нижче.
Крок 1) У Visual Studio перейдіть до Файл > Новий > Проект
Крок 2) У новому вікні проекту
- Виберіть додаток WPF
- Введіть назву як «MyWPF»
- натисніть OK
Крок 3) Visual Studio за замовчуванням створює два файли
- Файл XAML (MainWindow.xaml)
- Файл CS (MainWindow.xaml.cs)
MainWindow.xaml має
- Вікно дизайну
- Файл XAML
У вікні XAML за замовчуванням записуються такі теги:
Сітка є першим елементом за замовчуванням.
Файл MainWindow.xaml.cs містить відповідний код для файлу макета XAML:
Крок 4) У наборі інструментів,
- Перетягніть текстBox елемент до вікна дизайну
- ТекстBox з’явиться у вікні дизайну
- Ви побачите XAML-код для текстуBox доданий
Крок 5) Змініть текст на «Перша програма WPF».
Крок 6) Натисніть кнопку Пуск
Крок 7) Ви побачите вікно у виході
Щиро вітаю! Ви розробили та створили свою першу програму WPF. Далі в цьому посібнику з WPF для початківців ми побачимо різницю між WPF і WinForms.
WPF проти WinForms
| WPF | WinForms |
|---|---|
| Це новіша структура, тому вона більше відповідає поточним стандартам. | Він старший, тому більш перевірений. |
| Він гнучкий та багатофункціональний. Ви можете розробляти дуже багаті програми без написання коду чи купівлі елементів керування. | Не такий багатофункціональний |
| Розробники 3rd Елементи керування вечірками зосереджені на сумісності з WPF, оскільки це майбутнє. | Існує багато сторонніх елементів керування, які можна купити або отримати безкоштовно. |
| XAML дозволяє легко створювати та редагувати графічний інтерфейс. Це дозволяє розділити роботу між дизайнером (XAML) та програмістом (C#, VB.NET тощо). | In Windows Форми, весь код написаний в одному місці. |
| Навички XAML безпосередньо переносяться на новіші фреймворки, такі як WinUI 3, .NET MAUI та Avalonia UI. | Навички роботи з WinForms застосовуються переважно до класичних Windows розробка настільних комп'ютерів. |
| Набір вбудованих елементів керування WPF обмежений | Вбудовані елементи керування дуже потужні |
Тип програм, створених за допомогою WPF
- WPF використовується для автономного використання Windows настільні програми, такі як корпоративні інструменти для бізнесу, інформаційні панелі, торгові термінали та програмне забезпечення для дизайну
- Windows Форми та сторінки WPF можуть співіснувати в одній програмі
- Ви можете розробляти додатки у стилі навігації по сторінках/віконах
WPF у сучасному .NET
Microsoft опублікував WPF з відкритим вихідним кодом у грудні 2018 року, а починаючи з .NET Core 3.0 (2019), фреймворк постачався з кожним сучасним випуском .NET, аж до .NET 10 включно. Перенесення програми на сучасний .NET забезпечує швидший запуск, простіше розгортання завдяки автономній публікації та доступ до поточних функцій мови C#, тоді як модель програмування WPF залишається незмінною.
WPF залишається Windows-лише. Якщо ви сьогодні обираєте фреймворк для робочого столу, це порівняння допоможе:
| Рамки | Best For |
|---|---|
| WPF | Зрілий, багатофункціональний Windows настільні програми з величезною екосистемою |
| WinUI 3 | Нові програми, орієнтовані на сучасність Windows 11 зовнішній вигляд та відчуття |
| .NET ВИПРАВЛЕНО | Кросплатформні додатки, що охоплюють Windows, macOS, Android, і iOS |
Оскільки WPF активно підтримується та глибоко вбудований у корпоративне програмне забезпечення, його вивчення залишається практичною інвестицією. Щойно ви звикнете створювати ці програми, варто потренуватися у найпоширеніших Питання для співбесіди на WPF зафіксувати такі концепції, як XAML, зв'язування даних та візуальне дерево.









