Top 70 de întrebări și răspunsuri la interviu WPF (2025)
Iată întrebările și răspunsurile la interviu WPF pentru studenții, precum și candidații cu experiență pentru a obține jobul visat.
1. Ce este WPF?
WPF este cel mai recent API de prezentare de la Microsoft Windows. Este un motor grafic 2D și 3D. Capacitățile sale includ: -
- Toate comenzile comune ale utilizatorului. De exemplu, casete de selectare, butoane, glisoare etc.
- Acceptă documente în format flux și fix
- toate funcționalitățile Flash și HTML
- Legarea datelor
- Multimedia
- Animaţie
Descărcare gratuită PDF: Întrebări și răspunsuri la interviu WPF
2. Care sunt tipurile de documente acceptate de WPF?
Două tipuri de documente acceptate de Windows Presentation Foundation (WPF) sunt formatul Flow și documentul cu format fix. Documentul în format flux modifică conținutul pentru a se potrivi cu dimensiunea ecranului, în timp ce documentul cu format fix prezintă conținut, indiferent de dimensiunea ecranului.
3. Denumiți spațiul de nume necesar pentru lucrul cu 3D.
Spațiul de nume necesar pentru lucrul în 3D este System.Windows.Media.Medi3D.
4. Este corect să spunem că WPF a înlocuit DirectX?
Nu, WPF nu poate înlocui niciodată DirectX. WPF nu poate fi folosit pentru a crea jocuri cu o grafică uluitoare. WPF este menit să înlocuiască formularul Windows, nu DirectX.
5. Ce sunt proprietățile dependenței?
Proprietățile care aparțin unei anumite clase, dar care pot fi folosite pentru o altă clasă, se numesc proprietăți de dependență.
6. Cum poate fi mărită proporțional dimensiunea StatusBar?
Prin anularea atributului ItemsPanel al StatusBar cu o grilă. Coloanele grilei pot fi configurate corespunzător pentru a obține rezultatul dorit.
7. Ce sunt obiectele Freezable în WPF?
Un obiect, care are starea blocată, astfel încât să devină neschimbabil, este cunoscut ca obiect congelabil. Astfel de obiecte funcționează mai bine. De asemenea, este mai sigur dacă trebuie să fie partajate între fire.
8. De ce ar trebui să fie preferat WPF față de Adobe Flash?
WPF este o tehnologie mai recentă și, prin urmare, are cele mai recente instrumente de dezvoltare. Acceptă o gamă mai largă de limbaje de programare și are o reutilizare robustă de control.
9. Prin ce diferă Silverlight de aplicația browser WPF?
Una dintre diferențele majore este că .NET framework este necesar pentru rularea aplicațiilor browser WPF pe computerul client. Dar Silverlight rulează folosind doar plug-in-ul. Un alt punct de diferență este că aplicațiile realizate în WPF depind de OS deoarece .NET Framework rulează numai pe Windows. Pe de altă parte, plug-in-ul Silverlight poate fi instalat și pe acele sisteme de operare, care nu sunt Windows.
10. Numiți metodele prezente în DependencyObject.
Are trei obiecte și anume:
- SetValue
- ClearValue
- GetValue
11. Scrie despre PRISM.
PRISM este un cadru pentru crearea de aplicații complexe pentru WPF, Silverlight sau Windows Phone. PRISM utilizează MVVM, IC, modele de comandă, DI și Separarea preocupărilor pentru a obține o cuplare liberă.
12. Este posibil să utilizați Windows Forms într-o aplicație WPF?
Da, formularul Windows poate fi folosit în WPF. Formularul Windows poate apărea ca un pop WPF. Controalele acestui formular Window pot fi plasate pe lângă controalele WPF într-o pagină WPF, utilizând funcțiile controlului WindowsFormsHost care vine preinstalat.
13. Descrieți pe scurt CustomControl.
CustomControl extinde funcțiile controalelor existente. Acesta constă dintr-un stil implicit în Themes/Generic.xaml și un fișier de cod. Este cea mai bună modalitate de a crea o bibliotecă de control și poate fi, de asemenea, stilată sau modelată.
14. Numiți ansamblurile comune utilizate în WPF?
- PrezentareFundație
- WindowsBase
- PrezentareCore
15. Definiți animațiile Path în WPF
Animația cale este un tip de animație în care obiectul animat urmează o cale stabilită de geometria căii.
16. Pot fi făcute aplicații WPF fără XAML?
Da, aplicațiile WPF pot fi create fără XAML, deoarece utilizarea XAML în WPF este o chestiune de alegere.
17. Care sunt tipurile de ferestre în WPF?
WPF are trei tipuri de ferestre:
- Fereastra normală
- Fereastra de pagină
- Fereastra de navigare
18. Cum pot fi sortate elementele dintr-un ListBox?
Sortarea se poate face folosind o proprietate a obiectului ItemsCollection. ItemsCollection conține un atribut, SortDescriptions, care conține instanțele System.ComponentModel.SortDescription. Fiecare instanță SortDescription definește modul în care elementele ar trebui să fie sortate și indică dacă sortarea este descendentă sau ascendentă.
De exemplu, acest cod sortează elementele ContentControl pe baza proprietății de numărare a cuvintelor:
myItemsControl.Items.SortDescriptions.Add(new SortDescription(“WordCount”, ListSortDirection.Descending));
19. Prin ce diferă MVVM de MVC?
MVC înseamnă Model-View Controller și.MVVM înseamnă Model-View ViewModel.
În MVVM, View Model este folosit în locul unui controler. Acest model de vizualizare este prezent sub stratul UI. Dezvăluie obiectele de comandă și datele pe care le solicită vizualizarea. Acționează ca un obiect container din care vizualizarea își obține acțiunile și datele.
20. Explicați evenimentele rutate în WPF.
Un eveniment, care poate invoca handlere pe mai mulți ascultători prezenți într-un arbore de elemente, în loc de singurul obiect care a numit evenimentul, este cunoscut ca un eveniment Rutat.
21. Cum se utilizează System.Windows.Media.Visual dll în WPF?
Este folosit ori de câte ori apare o cerință pentru crearea unei interfețe personalizate de utilizator. Este un obiect de desen, care oferă instrucțiuni pentru realizarea unui obiect. Aceste instrucțiuni includ opacitatea etc. a desenului. De asemenea, clasa Visual face legătura între funcționalitățile claselor gestionate WPF și MilCore.dll.
22. Care sunt diferitele panouri de aspect din WPF?
Acestea sunt:
- Panoul de stivă
- Panou grilă
- Panoul de pânză
- Panoul de andocare
- Wrap Panel
23. Numiți subsistemele importante din WPF
Principalele subsisteme sunt:
- Windows.Controls.Control
- Windows.DependancyObject
- Windows.FrameworkElement
- Windows.Media.Visuals
- Obiect
- Threading.DispatcherObject
- Windows.UIElements
24. Ce înseamnă BAML în WPF?
BAML este abrevierea pentru Binary Application Markup Language. Nu este altceva decât XAML care a fost tokenizat, analizat și schimbat în formă binară. BAML este un limbaj declarativ comprimat, care este încărcat și analizat mai rapid decât XAML.
25. Care este diferența dintre controalele de pagină și de fereastră în WPF?
Diferența de bază este că Window Control prezidează aplicația Windows, în timp ce Page Control prezidează aplicațiile browser găzduite. De asemenea, controlul ferestrei poate conține Controlul paginii, dar inversul nu se poate întâmpla.
26. Ce sunt proprietățile atașate în WPF?
Proprietățile atașate sunt practic proprietăți de dependență care permit atașarea unei valori la orice obiect aleatoriu.
27. Ce este interfața INotifyPropertyChanged?
InotifyPropertyChanged anunță clienții, în general cei care sunt obligatorii, dacă valoarea unei proprietăți este modificată. Are un eveniment, numit PropertyChanged, care apare de fiecare dată când o proprietate a obiectului Model este schimbată.
28. Care este diferența de bază dintre evenimente și comenzi în modelul MVVM?
Comenzile sunt mai puternice și sunt avantajoase de utilizat în locul evenimentelor. Acțiunile sunt profund legate de sursa evenimentului și, prin urmare, evenimentele nu pot fi reutilizate cu ușurință. Dar comenzile fac posibilă menținerea eficientă a mai multor acțiuni la un loc și apoi reutilizarea acestora conform cerințelor noastre.
29. Care este metoda de a forța închiderea unui ToolTip, care este vizibil în prezent?
Poate fi închis prin setarea proprietății IsOpen a balonului cu instrumente la false.
30. Scrieți diferențele dintre DynamicResource și StaticResource.
Cea mai de bază diferență este că StaticResource evaluează resursa o singură dată, dar DynamicResource o evaluează de fiecare dată când este necesară resursa. Și din acest motiv, DyanamicResource este greoi pe sistem, dar face ca paginile sau ferestrele să se încarce mai repede
31. Explicați modelul MVVM.
Modelul MVVM împarte codul UI în 3 părți de bază:
- Model - Reprezintă un set de clase, care conțin date primite din baze de date.
- Vizualizare - Este codul care este de acord cu reprezentarea vizuală a datelor.
- ViewModel – Este stratul care leagă View și Model împreună. Prezintă aceste date într-o manieră care este ușor de înțeles. De asemenea, controlează modul în care View interacționează cu aplicația.
32. De ce sunt necesare panouri de aspect în WPF?
Panourile de aspect sunt necesare pentru ca controalele să se potrivească cu ecrane de dimensiuni diferite sau cu dimensiuni diferite ale fonturilor. Dacă aranjam controale pe coordonatele pixelilor fixe, atunci acest model va eșua atunci când este mutat într-un mediu diferit. Din acest motiv, sunt necesare panouri de aspect.
33. Scrieți pe scurt despre UserControl.
UserControl înglobează controalele existente într-un singur grup reutilizabil. Conține un fișier XAML și un cod. UserControl nu poate fi modelat sau modelat.
34. Care este modalitatea de a determina dacă un obiect Freezable este Frozen?
Proprietatea „IsFrozen” a obiectului poate fi utilizată pentru a determina dacă obiectul congelabil este înghețat.
35. Care este unitatea de măsură în WPF?
Toate măsurătorile sunt făcute în pixeli independenți de dispozitiv sau pixeli logici. Un pixel este 1/96-a parte dintr-un inch. Acești pixeli logici sunt întotdeauna menționați ca dubli, ceea ce le permite să aibă și o valoare fracțională.
36. Ce este un decor?
Sunt un tip special de FrameworkElement care oferă indicii vizuale utilizatorului. Ele sunt, de asemenea, folosite pentru a adăuga mânere elementelor și pentru a oferi informații despre starea unui control. Decoratoarele sunt legate de UIElement și sunt redate pe o suprafață care se află deasupra elementului, care este împodobit. Această suprafață se numește AdornerLayer. Ornamentele sunt plasate în mare parte relativ la elementul mărginit.
37. Explicați serializarea?
Este procesul de conversie a stării unui obiect în flux de octeți.
38. Este MDI acceptat în WPF?
MDI nu este acceptat în WPF. UserControl poate fi folosit pentru a oferi aceeași funcționalitate ca MDI.
39. Ce este XBAP?
XBAP este forma prescurtată a aplicației de browser XAML. Permite aplicațiilor WPF să ruleze în browserele web. Instalarea .NET framework pe computerul client este o condiție prealabilă pentru rularea aplicațiilor WPF. Dar aplicațiilor găzduite nu li se oferă acces complet la mașina clientului și sunt executate într-un mediu sandbox. Folosind WPF, pot fi create și astfel de aplicații, care rulează direct în browser. Aceste aplicații se numesc XBAP.
40. În ce sens se aseamănă WPF și Silverlight?
Silverlight și WPF sunt similare în sensul că ambele folosesc XAML și împărtășesc același cod, sintaxă și biblioteci.
41. Cum să faci să apară un ToolTip în timp ce treci cu mouse-ul peste un element dezactivat?
În acest scop, poate fi utilizată proprietatea ShowOnDisabled. Aparține clasei ToolTipService.
42. Cum poate fi făcut ListBox să defileze fără probleme?
ListBox este configurat să deruleze în mod implicit element cu articol. Aceasta depinde de înălțimea fiecărui element și de acțiunea de defilare, dând astfel o senzație aspră. O modalitate mai bună este să configurați acțiunea de defilare, astfel încât să modifice elementele cu câțiva pixeli, indiferent de înălțimea lor. Acest lucru se face prin setarea proprietății ScrollViewer.CanContentScroll la „false”. Acest lucru va face, totuși, ListBox-ul să piardă proprietatea de virtualizare.
43. Unde începe execuția într-o aplicație WPF?
Aplicațiile WPF create în Visual Studio rulează fără o metodă Main. Acest lucru se datorează faptului că aplicațiile sunt cu majuscule speciale atunci când sunt compilate din XAML. Aceasta înseamnă că Visual Studio atașează o acțiune de compilare a ApplicationDefinition la fișierul XAML. Aceasta are ca rezultat generarea automată a unei metode Main.
44. Serviciul Windows poate fi creat folosind WPF?
Nu, serviciile Windows nu pot fi create folosind WPF. WPF este un limbaj de prezentare. Serviciile Windows au nevoie de permisiuni specifice pentru a executa unele funcții legate de GUI. Prin urmare, dacă nu obține permisiunile necesare, dă erori.
45. Care sunt diferitele tipuri de evenimente rutate în WPF?
Există trei tipuri de evenimente rutate în WPF. Sunt:
- direct - Acest eveniment nu poate fi declanșat decât de elementul din care a luat naștere.
- Tunele - Acest eveniment este mai întâi declanșat de elementul în care a fost generat și apoi este generat de fiecare container consecutiv din arborele vizual.
- clocotire – Acest eveniment este mai întâi declanșat de containerul cel mai de sus din arborele vizual și apoi este declanșat de fiecare container consecutiv situat sub cel de sus, până când ajunge la elementul în care a fost originar.
46. De ce este mai bine să împachetați articole în ComboBoxItem?
Are câteva proprietăți importante precum IsSelected și IsHighlighted și, de asemenea, câteva evenimente necesare, cum ar fi Selected și Unselected. ComboBoxItem este un control de conținut și, prin urmare, este foarte util pentru adăugarea de șiruri simple la un ComboBox.
47. Cum să obțineți ID-uri de automatizare ale articolelor dintr-un ItemsControl?
Cel mai bun mod de a face acest lucru este să îi setați proprietatea Nume, deoarece este utilizată în mod implicit în scopuri de automatizare. Dar dacă doriți să dați un ID unui element, altul decât numele acestuia, atunci proprietatea AutomationProperties.AutomationID poate fi setată în funcție de nevoi.
48. Cum pot fi preluate argumentele liniei de comandă într-o aplicație WPF?
Metoda cea mai preferată pentru aceasta este să apelați System.Environment.GetCommandLineArgs în orice punct aleatoriu al aplicației.
49. Indicați numele claselor, care conțin conținut arbitrar.
Controlul conținutului
Controlul conținutului cu antet
Controlul articolelor
Control HeaderedItems
50. Care NameSpace are comenzi „Popup” și „Thumb”?
Spațiul de nume system.windows.controls.primitives are comenzi „Popup” și „Thumb”.
51. Explicați ce este XAML? Care este diferența dintre XML și XAML?
XAML înseamnă eXtensible Application Markup Language. Este limbajul folosit pentru a instanția obiecte.NET. Este limbajul dezvoltat de Microsoft pentru a scrie interfața utilizator pentru aplicațiile de generație următoare.
XML este conceput pentru a stoca date sau pentru a lucra cu datele stocate, în timp ce XAML este versiunea extinsă a XML utilizată pentru programarea.NET.
52. Menționați avantajul utilizării XAML?
Avantajul utilizării XAML este
- Codul XAML este clar de citit și sunt scurte
- Separarea codului de proiectant și a logicii
- Instrumente precum amestecul de expresii utilizate pentru designul grafic necesită XAML ca sursă
- Separă în mod clar rolurile de designer și de dezvoltator
53. Cum puteți codifica pentru a afișa „Hello World” în XAML?
Se afișează „Hello World”.
<page xmlns= '' ''> <TextBlock> Hello, World! </TextBlock> </Page>
54. În XAML cum sunt specificate componentele grafice?
În XAML, componentele grafice sunt specificate prin etichete deschise sau închise cu atribute.
De exemplu,
- Etichetă cu conținut
Clic
- Etichetă fără conținut
< Buton/>
55. Ce este Sintaxa Atributului în XAML?
În XAML, sintaxa atributului setează o valoare pentru o proprietate sau numește handlerul de evenimente pentru un eveniment, prin declararea unui atribut pe un element. Valoarea atributului trebuie inclusă între două ghilimele (").
De exemplu,
< Button Background = “Black” Foreground “Red” Content = “This is an operating button”/>
56. Explicați proprietățile conținutului XAML?
XAML reprezintă o caracteristică de limbaj prin care o clasă poate aloca exact una dintre proprietățile sale ca proprietate XAML
57. Explicați ce este extensia Markup în XAML?
Extensiile de markup sunt substituenți în XAML care sunt utilizați pentru a rezolva proprietăți în timpul execuției. O extensie de marcare vă permite să extindeți XAML și, folosind sintaxa atributelor, puteți seta, de asemenea, orice proprietate care poate fi setată în XAML. Scopul extensiei de marcare este de a procesa un șir și de a returna un obiect. Unele dintre extensiile de markup standard sunt xNull, x: Mulțime, :StaticResource și DynamicResource.
58. Care sunt cele patru tipuri generale de elemente XAML?
Cele patru tipuri generale de elemente XAML sunt
- Elemente rădăcină
- Elementele panoului
- Elemente de control
- Elemente geometrice
59. Ce prefix X: indică în XAML?
Prefixul X: este folosit pentru a mapa spațiul de nume XAML în șabloane.
60. Care sunt diferitele prefixe X: utilizate în limbajul XAML?
- x: Cheie à Setează o cheie unică pentru fiecare resursă într-un dicționar de resurse
- x: Classà Specifică spațiul de nume CLR (Common Language Runtime) și numele clasei pentru clasa care furnizează codul
- x: Nume à Specifică un nume de obiect de rulare pentru instanța care există în codul de timp de rulare după procesarea unui element de obiect
- x: Static à Activează o referință care returnează o valoare statică care altfel este o proprietate compatibilă XAML
- x: Type à Construiește o referință de tip pe baza numelui tipului
61. Cum puteți seta un atribut de proprietate ca șir literal și nu ca extensie de marcare?
Pentru a evita extensia de marcare, trebuie să utilizați o pereche goală de bretele, cum ar fi
Conținut = „{} {Aceasta nu este o extensie de markup}”/>
62. Care sunt tipurile de copii pe care elementul obiect poate avea în XAML?
Trei tipuri de copii un element obiect poate avea
- Obiecte de colecție
- O valoare pentru proprietatea de conținut
- Valoarea care poate fi convertită de tip în elementul obiect
63. Explicați ce este Type Converter?
Convertorul de tip este util pentru a converti un șir în tipul de valoare adecvat, acolo unde nu există nicio utilizare a extensiei de marcaj. Type Converter definește patru membri pentru conversia în și din șir în scopuri xaml.
- CanConvertTo
- CanConvertFrom
- Convertiți în
- Convertiți din
64. Explicați sintaxa elementului obiect în XAML?
Pentru a instanția o clasă sau o structură CLR prin declararea unui element XML, este utilizată o sintaxă de marcare XAML. Această sintaxă este denumită Sintaxa Elementului Obiect.
65. Care sunt modalitățile prin care puteți declara obiecte în XAML?
Pentru a declara obiecte în XAML, există trei moduri
- Direct, folosind sintaxa elementului obiect: această sintaxă este folosită pentru a declara obiecte rădăcină sau obiecte imbricate care stabilesc valorile proprietăților
- Indirect prin utilizarea sintaxei atributelor: Această sintaxă folosește o valoare șir în linie care are o instrucțiune despre cum să creați un obiect. Pentru a seta valoarea proprietății la o referință nou creată, analizatorul XAML utilizează acest șir
- Folosind o extensie de marcare
66. Ce ar trebui să conţină un element rădăcină al unui document XAML?
În documentul XAML, elementul rădăcină este format doar din anumite elemente, iar aceste elemente sunt fereastră, o pânză sau panouri.
67. Ce este legarea de date cu XAML?
Legarea datelor oferă o modalitate simplă de a afișa și de a interacționa cu datele. Un exemplu va arăta cum puteți face legarea datelor în XAML. Legarea în XAML se face folosind sintaxa {binding….}.
68. Explicați cum puteți afișa diferite date în timpul rulării și în timpul proiectării?
- O modalitate de a afișa datele în timpul rulării și în timpul proiectării este să vă declarați datele în XAML
- Un alt mod de a face acest lucru este declararea în XAML folosind diferite atribute de date din spațiul de nume XML al designerului. Cu prefixul ad:, acest spațiu de nume este de obicei declarat.
xmlns: d= http://schemas.microsoft.com/expression/blend/2008
69. Explicați ce este funcția x: directivă cheie în XAML?
X: Cheia identifică în mod unic elementele care sunt create și menționate într-un dicționar definit XAML. Prin adăugarea unei valori x: Key la un element de obiect XAML, o resursă din dicționarul de resurse poate fi identificată și este cea mai comună modalitate de identificare.
70. Explicați care este utilizarea sintaxei elementului de proprietate?
Cu ajutorul sintaxei elementului de proprietate, puteți adăuga element child cu un nume sub forma parent.propertyName.
71. Cum pot fi definite clasele personalizate utilizate în XAML?
Clasele personalizate sunt utilizate în două moduri
- Cu codul care produce aplicația Primary Windows Presentation Foundation (WPF) sau în codul din spate
- Într-un ansamblu separat ca o clasă, cum ar fi un executabil sau DLL folosit ca bibliotecă de clasă
72. Ce este Spațiul de nume Xaml?
Spațiul de nume poate fi definit ca un mediu sau un container abstract folosit pentru a deține o grupare logică de identificatori sau simboluri unice.
Aceste întrebări de interviu vă vor ajuta, de asemenea, în viva (orale)
Vă rugăm să verificați din nou definiția evenimentului tunel și bule, pare interschimbată.
Anunță-mă dacă greșesc.