Топ-72 запитань і відповідей на інтерв’ю WPF (2025)

Ось питання та відповіді на співбесіді WPF для новачків, а також для досвідчених кандидатів, щоб отримати роботу своєї мрії.


1. Що таке WPF?

WPF — це найновіший API презентацій Microsoft Windows. Це 2D і 3D графічний двигун. Його можливості включають:-

  • Усі звичайні елементи керування користувача. Наприклад, прапорці, кнопки, повзунки тощо.
  • Підтримує документи потокового та фіксованого форматів
  • всі функції Flash і HTML
  • Прив’язка даних
  • мультимедіа
  • анімація

Безкоштовне завантаження PDF: Запитання та відповіді на співбесіді WPF


2. Які типи документів підтримує WPF?

Два типи документів, які підтримуються Windows Presentation Foundation (WPF), — це документ Flow і фіксований формат. Документ потокового формату змінює вміст відповідно до розміру екрана, тоді як документ фіксованого формату представляє вміст незалежно від розміру екрана.


3. Назвіть простір імен, необхідний для роботи з 3D.

Простір імен, необхідний для роботи в 3D, — System.Windows.Media.Medi3D.


4. Чи правильно сказати, що WPF замінив DirectX?

Ні, WPF ніколи не зможе замінити DirectX. WPF не можна використовувати для створення ігор із приголомшливою графікою. WPF призначений для заміни Windows form, а не DirectX.


5. Що таке властивості залежностей?

Властивості, які належать до певного класу, але можуть бути використані для іншого, називаються властивостями залежностей.

Запитання для співбесіди WPF
Запитання для співбесіди WPF

6. Як можна пропорційно збільшити розмір StatusBar?

Замінивши атрибут ItemsPanel рядка стану сіткою. Стовпці сітки можна відповідним чином налаштувати для отримання бажаного результату.


7. Що таке Freezable об’єкти в WPF?

Об’єкт, стан якого заблоковано, тому він стає незмінним, називається об’єктом, який можна заморозити. Такі об'єкти працюють краще. Також безпечніше, якщо потрібно, щоб вони були спільні між потоками.


8. Чому варто віддати перевагу WPF перед Adobe Flash?

WPF є новішою технологією, тому вона має новітні засоби розробки. Він підтримує більш широкий спектр мов програмування та має надійне повторне використання елементів керування.


9. Чим Silverlight відрізняється від браузерної програми WPF?

Однією з головних відмінностей є те, що для запуску додатків браузера WPF на клієнтській машині потрібна платформа .NET. Але Silverlight працює лише за допомогою плагіна. Інша відмінність полягає в тому, що програми, створені в WPF, залежать від OS оскільки .NET Framework працює лише в Windows. З іншого боку, плагін Silverlight також можна інсталювати на тих ОС, які не є Windows.


10. Назвіть методи, присутні в DependencyObject.

Він має три об’єкти, а саме:

  • SetValue
  • ClearValue
  • GetValue

11. Напишіть про PRISM.

PRISM — це платформа для створення складних програм для WPF, Silverlight або Windows Phone. PRISM використовує MVVM, IC, шаблони команд, DI та розділення проблем, щоб отримати слабкий зв’язок.


12. Чи можна використовувати Windows Forms у програмі WPF?

Так, форму Windows можна використовувати в WPF. Форма Windows може відображатися як спливаюче вікно WPF. Елементи керування цієї віконної форми можна розмістити поряд з елементами керування WPF на сторінці WPF, використовуючи функції попередньо встановленого елемента керування WindowsFormsHost.

Фонд презентацій Windows (WPF)
Фонд презентацій Windows (WPF)

13. Коротко опишіть CustomControl.

CustomControl розширює функції існуючих елементів керування. Він складається зі стилю за замовчуванням у Themes/Generic.xaml і файлу коду. Це найкращий спосіб створити бібліотеку елементів управління, а також її можна стилізувати або шаблонувати.


14. Назвіть загальні збірки, які використовуються в WPF?

  • ПрезентаціяФонд
  • WindowsBase
  • PresentaionCore

15. Визначте анімацію Path у WPF

Анімація шляху — це тип анімації, у якому анімований об’єкт слідує шляху, заданому геометрією шляху.


16. Чи можна створювати програми WPF без XAML?

Так, програми WPF можна створювати без XAML, оскільки використання XAML у WPF є справою вибору.


17. Які є типи вікон у WPF?

WPF має три типи вікон:

  • Нормальне вікно
  • Вікно сторінки
  • Вікно навігації

18. Як можна відсортувати елементи в ListBox?

Сортування можна виконати за допомогою властивості об’єкта ItemsCollection. ItemsCollection містить атрибут SortDescriptions, який містить екземпляри System.ComponentModel.SortDescription. Кожен екземпляр SortDescription визначає спосіб сортування елементів і вказує сортування за спаданням чи зростанням.

Наприклад, цей код сортує елементи ContentControl на основі їхньої властивості кількості слів:

myItemsControl.Items.SortDescriptions.Add(new SortDescription("WordCount", ListSortDirection.Descending));

19. Чим MVVM відрізняється від MVC?

MVC означає Model-View Controller, а .MVVM — Model-View ViewModel.

У MVVM модель перегляду використовується замість контролера. Ця модель представлення представлена ​​під шаром інтерфейсу користувача. Він показує командні об’єкти та дані, які потрібні для перегляду. Він діє як об’єкт-контейнер, з якого представлення отримує свої дії та дані.


20. Поясніть маршрутизацію подій у WPF.

Подія, яка може викликати обробники на кількох слухачах, присутніх у дереві елементів, замість одного об’єкта, який викликав подію, відома як Маршрутизована подія.


21. Як dll System.Windows.Media.Visual використовується у WPF?

Він використовується щоразу, коли виникає потреба створити власний інтерфейс користувача. Це об’єкт малювання, який дає інструкції для створення об’єкта. Ці інструкції включають непрозорість тощо малюнка. Клас Visual також поєднує функції керованих класів WPF і MilCore.dll.


22. Які різні панелі макета існують у WPF?

До них відносяться:

  • Панель стека
  • Панель сітки
  • Полотно Панно
  • Док-панель
  • Обгортка панелі

23. Назвіть важливі підсистеми WPF

Основними підсистемами є:

  • Windows.Controls.Control
  • Windows.DependancyObject
  • Windows.FrameworkElement
  • Windows.Media.Visuals
  • Об'єкт
  • Threading.DispatcherObject
  • Windows.UIElements

24. Що означає BAML у WPF?

BAML — це абревіатура від Binary Application Markup Language. Це не що інше, як XAML, який було токенізовано, проаналізовано та змінено на двійкову форму. BAML — це стиснута декларативна мова, яка завантажується й аналізується швидше, ніж XAML.


25. Яка різниця між елементами керування сторінкою та вікном у WPF?

Основна відмінність полягає в тому, що керування вікном керує програмою Windows, тоді як керування сторінкою керує розміщеними програмами браузера. Крім того, елемент керування вікном може містити елемент керування сторінкою, але зворотне не може бути.


26. Що таке прикріплені властивості в WPF?

Прикріплені властивості — це в основному властивості залежностей, які дозволяють прикріплювати значення до будь-якого випадкового об’єкта.


27. Що таке інтерфейс INotifyPropertyChanged?

InotifyPropertyChanged сповіщає клієнтів, як правило, зобов’язуючих, якщо значення властивості змінюється. Він має подію під назвою PropertyChanged, яка виникає щоразу, коли змінюється властивість об’єкта Model.


28. Яка основна відмінність між подіями та командами в моделі MVVM?

Команди більш потужні, і їх краще використовувати замість подій. Дії глибоко пов’язані з джерелом події, тому їх не можна легко використати повторно. Але команди дозволяють ефективно підтримувати кілька дій в одному місці, а потім повторно використовувати їх відповідно до наших вимог.


29. Який метод примусово закрити спливаючу підказку, яка зараз є видимою?

Його можна закрити, встановивши для властивості IsOpen підказки значення false.


30. Напишіть відмінності між DynamicResource і StaticResource.

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


31. Поясніть шаблон MVVM.

Шаблон MVVM ділить код інтерфейсу користувача на 3 основні частини:

  • Модель - Він являє собою набір класів, які містять дані, отримані з баз даних.
  • Переглянути – Це код, який узгоджується з візуальним представленням даних.
  • ViewModel – Це шар, який пов’язує View і Model разом. Він представляє ці дані у формі, яку легко зрозуміти. Він також контролює, як View взаємодіє з програмою.

32. Навіщо потрібні панелі макетів у WPF?

Панелі макета потрібні для того, щоб елементи керування підходили до екранів різних розмірів або мали різні розміри шрифту. Якщо ми розташуємо елементи керування за фіксованими координатами пікселів, ця модель не працюватиме, якщо її перемістити в інше середовище. З цієї причини необхідні панелі макета.


33. Напишіть коротко про UserControl.

UserControl об’єднує наявні елементи керування в єдину групу для багаторазового використання. Він містить файл XAML і код. UserControl не можна стилізувати або шаблонувати.


34. Який спосіб визначити, чи заморожений об’єкт є замороженим?

Властивість «IsFrozen» об’єкта можна використовувати, щоб визначити, чи заморожений об’єкт заморожено.


35. Що є одиницею вимірювання в WPF?

Усі вимірювання виконуються в апаратно-незалежних пікселях або логічних пікселях. Один піксель становить 1/96 частину дюйма. Ці логічні пікселі завжди згадуються як подвійні, це дозволяє їм також мати дробове значення.


36. Що таке декоратор?

Вони є особливим типом FrameworkElement, який надає користувачеві візуальні підказки. Вони також використовуються для додавання маркерів до елементів і надання інформації про стан елемента керування. Елементи прикрашання прив’язані до елемента UIElement і відображаються на поверхні, що лежить над елементом, який прикрашається. Ця поверхня називається AdornerLayer. Орнери переважно розміщуються відносно обмеженого елемента.


37. Поясніть серіалізацію?

Це процес перетворення стану об'єкта в потік байтів.


38. Чи підтримується MDI у WPF?

MDI не підтримується в WPF. UserControl можна використовувати для надання тієї ж функціональності, що й MDI.


39. Що таке XBAP?

XBAP — це скорочена форма XAML Browser Application. Це дозволяє програмам WPF працювати у веб-браузерах. Інсталяція .NET Framework на клієнтській машині є необхідною умовою для запуску програм WPF. Але розміщені програми не мають повного доступу до клієнтської машини та виконуються в середовищі пісочниці. За допомогою WPF також можна створювати такі програми, які запускаються безпосередньо в браузері. Ці програми називаються XBAP.


40. У якому сенсі WPF і Silverlight схожі?

Silverlight і WPF подібні в тому сенсі, що обидва використовують XAML і мають однаковий код, синтаксис і бібліотеки.


41. Як змусити підказку з'являтися під час наведення курсора на вимкнений елемент?

Для цього можна використовувати властивість ShowOnDisabled. Він належить до класу ToolTipService.


42. Як змусити ListBox плавно прокручуватися?

ListBox за замовчуванням налаштовано на прокручування по елементах. Це залежить від висоти кожного елемента та дії прокручування, таким чином створюючи грубе відчуття. Кращий спосіб — налаштувати дію прокручування так, щоб елементи зміщувалися на кілька пікселів незалежно від їх висоти. Це робиться шляхом встановлення властивості ScrollViewer.CanContentScroll на «false». Однак це призведе до того, що ListBox втратить властивість віртуалізації.


43. З чого починається виконання в додатку WPF?

Програми WPF, створені у Visual Studio, запускаються без методу Main. Це пов’язано з тим, що програми мають особливий регістр, коли вони скомпільовані з XAML. Це означає, що Visual Studio прикріплює дію побудови ApplicationDefinition до файлу XAML. Це призводить до автоматичної генерації основного методу.


44. Чи можна створити службу Windows за допомогою WPF?

Ні, служби Windows не можна створити за допомогою WPF. WPF — це мова презентацій. Службам Windows потрібні певні дозволи для виконання деяких пов’язаних із графічним інтерфейсом функцій. Тому, якщо він не отримує необхідні дозволи, він видає помилки.


45. Які є різні типи маршрутизованих подій у WPF?

У WPF є три типи маршрутизованих подій. Це:

  • Прямий – Ця подія може бути викликана лише елементом, у якому вона виникла.
  • Тунелювання – Ця подія спочатку викликається елементом, у якому вона була створена, а потім її викликає кожен наступний контейнер у візуальному дереві.
  • Булькання – Ця подія спочатку викликається найвищим контейнером у візуальному дереві, а потім викликається кожним послідовним контейнером, що лежить нижче самого верхнього, доки не досягне елемента, з якого вона була створена.

46. ​​Чому краще обертати елементи в ComboBoxItem?

Він має деякі важливі властивості, такі як IsSelected і IsHighlighted, а також деякі необхідні події, такі як Selected і Unselected. ComboBoxItem — це елемент керування вмістом, тому він дуже корисний для додавання простих рядків до ComboBox.


47. Як отримати ідентифікатори автоматизації елементів у ItemsControl?

Найкращий спосіб зробити це — встановити властивість Name, оскільки вона використовується для цілей автоматизації за замовчуванням. Але якщо вам потрібно надати ідентифікатор елементу, крім його імені, тоді властивість AutomationProperties.AutomationID можна встановити відповідно до потреби.


48. Як можна отримати аргументи командного рядка в програмі WPF?

Найбільш бажаним методом для цього є виклик System.Environment.GetCommandLineArgs у будь-якій випадковій точці програми.


49. Назвіть класи, які містять довільний вміст.

Контроль вмісту

Керування HeaderedContent

Контроль предметів

Керування HeaderedItems


50. Який простір імен має елементи керування «Popup» і «Thumb»?

Простір імен system.windows.controls.primitives має елементи керування «Popup» і «Thumb».


51. Поясніть, що таке XAML? Яка різниця між XML і XAML?

XAML розшифровується як eXtensible Application Markup Language (розширювана мова розмітки застосунків). Це мова, яка використовується для створення екземплярів об'єктів .NET. Це мова, розроблена... Microsoft написати інтерфейс користувача для програм наступного покоління.

XML призначений для зберігання даних або роботи зі збереженими даними, тоді як XAML є розширеною версією XML, яка використовується для програмування .NET.


52. Згадайте переваги використання XAML?

Перевагою використання XAML є

  • Код XAML зрозумілий для читання, і вони короткі
  • Розділення коду дизайнера та логіки
  • Такі інструменти, як суміш виразів, які використовуються для графічного дизайну, вимагають XAML як джерело
  • Він чітко розділяє ролі дизайнера та розробника

53. Як ви можете закодувати для відображення «Hello World» у XAML?

Відображення «Hello World».

<page xmlns= '' ''>

<TextBlock>

Hello, World!

</TextBlock>

</Page>

54. Як у XAML визначаються графічні компоненти?

У XAML графічні компоненти визначаються відкритими або закритими тегами з атрибутами.

Наприклад,

  • Тег із вмістом

Натисніть

  • Тег без вмісту

< Button/>


55. Що таке синтаксис атрибутів у XAML?

У XAML синтаксис атрибутів встановлює значення для властивості або називає обробник події для події шляхом оголошення атрибута елемента. Значення атрибута має бути укладене у дві лапки (“).

Наприклад,

< Button Background = "Black" Foreground "Red" Content = "This is an operating button"/>

XAML


56. Поясніть властивості вмісту XAML?

XAML представляє функцію мови, за допомогою якої клас може виділяти лише одну зі своїх властивостей як властивість XAML


57. Поясніть, що таке розширення розмітки в XAML?

Розширення розмітки – це покажчики місця заповнення в XAML, які використовуються для визначення властивості під час виконання. Розширення розмітки дозволяє розширити XAML, а за допомогою синтаксису атрибутів можна також установити будь-яку властивість, яку можна встановити в XAML. Метою розширення розмітки є обробка рядка та повернення об’єкта. Деякі стандартні розширення розмітки xNull, x: масив, :СтатичнийРесурс та ДинамічнийРесурс.


58. Які чотири загальні типи елементів XAML?

Чотири загальні типи елементів XAML:

  • Кореневі елементи
  • Елементи панелі
  • Елементи управління
  • Геометричні елементи

59. Що означає префікс X: у XAML?

Префікс X: використовується для зіставлення простору імен XAML у шаблонах.


60. Які різні префікси X: використовуються в мові XAML?

  • x: Key à Встановлює унікальний ключ для кожного ресурсу в Словнику ресурсів
  • x: Classà Визначає простір імен CLR (Common Language Runtime) і назву класу для класу, який надає код
  • x: Ім’я à Визначає назву об’єкта часу виконання для екземпляра, який існує в коді часу виконання після обробки елемента об’єкта
  • x: Static à Вмикає посилання, яке повертає статичне значення, яке в іншому випадку є властивістю, сумісною з XAML
  • x: Type à Він створює посилання на тип на основі назви типу

61. Як можна встановити атрибут властивості як літеральний рядок, а не розширення розмітки?

Щоб уникнути розширення розмітки, ви повинні використовувати порожню пару фігурних дужок, наприклад

Content = “{} {Це не розширення розмітки}”/>


62. Які типи дітей може мати елемент об’єкта в XAML?

Три типи дочірніх елементів може мати елемент object

  • Предмети колекції
  • Значення властивості вмісту
  • Значення, яке можна перетворити на тип елемента object

63. Поясніть, що таке конвертер типів?

Конвертер типів корисний для перетворення рядка у відповідний тип значення, коли не використовується розширення розмітки. Конвертер типів визначає чотири члени для перетворення в рядок та з рядка для цілей XAML.

  • CanConvertTo
  • CanConvertFrom
  • Перетворити на
  • Перетворити з

64. Поясніть синтаксис елемента об’єкта в XAML?

Для створення екземпляра класу або структури CLR шляхом оголошення елемента XML використовується синтаксис розмітки XAML. Цей синтаксис називається синтаксисом об'єктних елементів.


65. Якими способами можна декларувати об’єкти в XAML?

Щоб оголосити об’єкти в XAML, є три способи

  • Безпосередньо, за допомогою синтаксису елемента об’єкта: цей синтаксис використовується для оголошення кореневих об’єктів або вкладених об’єктів, які встановлюють значення властивостей
  • Опосередковано за допомогою синтаксису атрибутів: у цьому синтаксисі використовується вбудоване рядкове значення, яке містить інструкцію щодо створення об’єкта. Щоб установити значення властивості для новоствореного посилання, аналізатор XAML використовує цей рядок
  • Використання розширення розмітки

66. Що має містити кореневий елемент документа XAML?

У документі XAML кореневий елемент складається лише з певних елементів, і цими елементами є вікно, полотно або панелі.


67. Що таке прив’язка даних за допомогою XAML?

Прив'язка даних забезпечує простий спосіб відображення та взаємодії з даними. У прикладі буде показано, як можна виконувати прив'язку даних у XAML. Прив'язка в XAML виконується за допомогою синтаксису {binding…}.


68. Поясніть, як можна відображати різні дані під час виконання та під час проектування?

  • Одним із способів відображення даних під час виконання та розробки є оголошення ваших даних у XAML
  • Інший спосіб зробити це – оголосити його в XAML, використовуючи різні атрибути даних з простору імен XML конструктора. Зазвичай цей простір імен оголошується з префіксом ad:.

xmlns: d= http://schemas.microsoft.com/expression/blend/2008


69. Поясніть, що таке функція x: Key директива в XAML?

X: Ключ унікально ідентифікує елементи, створені та на які посилаються в словнику, визначеному XAML. Додавши значення x: Key до елемента об’єкта XAML, можна ідентифікувати ресурс у словнику ресурсів, і це найпоширеніший спосіб ідентифікації.


70. Поясніть, для чого використовується синтаксис елемента властивості?

За допомогою синтаксису елемента властивості ви можете додати дочірній елемент з іменем у формі parent.propertyName.


71. Як можна визначити спеціальні класи, що використовуються в XAML?

Спеціальні класи використовуються двома способами

  • За допомогою коду, який створює програму Primary Windows Presentation Foundation (WPF), або в коді позаду
  • В окремій збірці як клас, наприклад, виконуваний файл або DLL, що використовується як бібліотека класів

72. Що таке простір імен Xaml?

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

Ці запитання для співбесіди також допоможуть вам у життєдіяльності (усному)

Поділитись

One Comment

  1. Аватара Manoj каже:

    Перевірте ще раз визначення події тунелю та бульбашки, здається, вони помінялися місцями.
    Дайте мені знати, якщо я помиляюся.

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *