Підручник з WPF для початківців

⚡ Розумний підсумок

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

  • 🧭 Foundation: WPF — це векторний фреймворк інтерфейсу користувача на базі DirectX, що працює на платформі .NET.
  • 🎨 Розмітка XAML: Декларативний синтаксис XML відокремлює проектування інтерфейсу від бізнес-логіки C#.
  • 🧱 Archiтекстура: PresentationFramework, PresentationCore та Milcore співпрацюють над DirectX для рендерингу.
  • 🔗 Прив'язка даних: Вбудоване зв'язування з'єднує елементи керування з джерелами даних та забезпечує роботу шаблону MVVM.
  • 🛠️ Практичний початок: Шаблони Visual Studio дозволяють створити та запустити перший WPF-додаток за сім кроків.
  • ???? Сучасна актуальність: WPF має відкритий вихідний код і постачається з .NET 10 з довгостроковою підтримкою.

Підручник з WPF для початківців

Що таке 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, детальний перелік яких наведено після неї.

Особливості 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 Archiтектура

WPF Archiтектура

Компоненти архітектури 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 перейдіть до Файл > Новий > Проект

Меню «Файл» у Visual Studio з опцією «Новий проект»

Крок 2) У новому вікні проекту

  1. Виберіть додаток WPF
  2. Введіть назву як «MyWPF»
  3. натисніть OK

Нове вікно проекту з вибраним шаблоном програми WPF

Крок 3) Visual Studio за замовчуванням створює два файли

  • Файл XAML (MainWindow.xaml)
  • Файл CS (MainWindow.xaml.cs)

Solution Explorer, що показує файли MainWindow.xaml та MainWindow.xaml.cs

MainWindow.xaml має

  1. Вікно дизайну
  2. Файл XAML

Вікно дизайну MainWindow.xaml та редактор XAML у Visual Studio

У вікні XAML за замовчуванням записуються такі теги:

Теги XAML за замовчуванням, створені для нового вікна WPF

Сітка є першим елементом за замовчуванням.

Файл MainWindow.xaml.cs містить відповідний код для файлу макета XAML:

Файл коду MainWindow.xaml.cs для вікна WPF

Крок 4) У наборі інструментів,

  1. Перетягніть текстBox елемент до вікна дизайну
  2. ТекстBox з’явиться у вікні дизайну
  3. Ви побачите XAML-код для текстуBox доданий

Перетягування текстуBox з панелі інструментів у вікно проектування WPF

Крок 5) Змініть текст на «Перша програма WPF».

Редагування текстуBox властивість text для першої програми WPF

Крок 6) Натисніть кнопку Пуск

Кнопка «Пуск» у Visual Studio для запуску WPF-застосунку

Крок 7) Ви побачите вікно у виході

Вікно запущеної програми WPF, що показує текст «Перша програма WPF»

Щиро вітаю! Ви розробили та створили свою першу програму 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, зв'язування даних та візуальне дерево.

Поширені запитання

Вам потрібен XAML для проектування інтерфейсу та C# (або VB.NET) для логіки програми. Базові знання об'єктно-орієнтованого програмування та бібліотеки класів .NET значно полегшують вивчення WPF.

Ні. WPF залежить від DirectX та Windows API, тому він працює лише на WindowsДля кросплатформної розробки XAML розгляньте Інтерфейс користувача Авалонія or .NET ВИПРАВЛЕНО.

так Такі інструменти, як Копілот GitHub може генерувати макети XAML, вирази зв'язування та стилі з коментарів, що пришвидшує навчання та зменшує повторювану розмітку для початківців.

Можна інтегрувати ML.NET для локального машинного навчання або виклику хмарних сервісів штучного інтелекту, таких як Azure OpenAI з вашого коду C#, а потім відображайте результати за допомогою стандартного зв'язування даних WPF.

Так. WPF є програмним забезпеченням з відкритим вихідним кодом, що поширюється за ліцензією MIT, і ви можете створювати програми безкоштовно за допомогою Visual Studio Community Edition.

Підсумуйте цей пост за допомогою: