72 parimat WPF-i intervjuu küsimust ja vastust (2025)

Siin on WPF-i intervjuu küsimused ja vastused nii värsketele kui ka kogenud kandidaatidele oma unistuste töökoha saamiseks.


1. Mis on WPF?

WPF on Microsoft Windowsi uusim esitlus-API. See on 2D ja 3D graafikamootor. Selle võimete hulka kuuluvad: -

  • Kõik tavalised kasutaja juhtelemendid. Näiteks märkeruudud, nupud, liugurid jne.
  • Toetab voo- ja parandusvormingus dokumente
  • kõik Flashi ja HTML
  • Andmete sidumine
  • Multimeedia
  • animafilm

Tasuta PDF-i allalaadimine: WPF-i intervjuu küsimused ja vastused


2. Mis tüüpi dokumente WPF toetab?

Windows Presentation Foundationi (WPF) toetatud kahte tüüpi dokumente on voovorming ja fikseeritud vormingu dokument. Voovormingus dokument muudab sisu nii, et see sobiks ekraani suurusega, samas kui fikseeritud vormingus dokument esitab sisu olenemata ekraani suurusest.


3. Nimetage 3D-ga töötamiseks vajalik nimeruum.

3D-s töötamiseks vajalik nimeruum on System.Windows.Media.Medi3D.


4. Kas on õige öelda, et WPF on DirectX-i asendanud?

Ei, WPF ei saa kunagi DirectX-i asendada. WPF-i ei saa kasutada vapustava graafikaga mängude loomiseks. WPF on mõeldud asendama Windowsi vormi, mitte DirectX-i.


5. Mis on sõltuvusomadused?

Atribuute, mis kuuluvad teatud klassi, kuid mida saab kasutada mõne teise klassi jaoks, nimetatakse sõltuvusomadusteks.

WPF-i intervjuu küsimused
WPF-i intervjuu küsimused

6. Kuidas saab StatusBar suurust proportsionaalselt suurendada?

Alistades ruudustikuga StatusBar atribuudi ItemsPanel. Ruudustiku veerge saab soovitud tulemuse saamiseks sobivalt konfigureerida.


7. Mis on külmutatavad objektid WPF-is?

Objekti, mille olek on lukustatud, nii et see muutub muutumatuks, nimetatakse külmutatavaks objektiks. Sellised objektid toimivad paremini. Samuti on turvalisem, kui neid nõutakse lõimede vahel jagamisel.


8. Miks peaks eelistama WPF-i Adobe Flashile?

WPF on uuem tehnoloogia ja seega on sellel uusimad arendustööriistad. See toetab laiemat valikut programmeerimiskeeli ja sellel on tugev korduvkasutus.


9. Mille poolest erineb Silverlight WPF brauserirakendusest?

Üks peamisi erinevusi on see, et WPF-i brauserirakenduste käitamiseks kliendi masinas on vaja .NET-i raamistikku. Kuid Silverlight töötab ainult pistikprogrammi abil. Teine erinevus on see, et WPF-is tehtud rakendused sõltuvad OS kuna .NET Framework töötab ainult Windowsis. Teisest küljest saab Silverlighti pistikprogrammi installida ka nendele operatsioonisüsteemidele, mis pole Windows.


10. Nimetage DependencyObjectis olevad meetodid.

Sellel on kolm objekti, nimelt:

  • SetValue
  • ClearValue
  • GetValue

11. Kirjuta PRISMist.

PRISM on raamistik keeruliste rakenduste loomiseks WPF, Silverlight või Windows Phone jaoks. PRISM kasutab lahtiühendamiseks MVVM-i, IC-d, käsumustreid, DI-d ja murede eraldamist.


12. Kas Windows Formsi on võimalik kasutada WPF-rakenduses?

Jah, Windowsi vormi saab kasutada WPF-is. Windowsi vorm võib ilmuda WPF-i hüpikaknana. Selle aknavormi juhtelemendid saab paigutada WPF-lehele lisaks WPF-juhtelementidele, kasutades eelinstallitud juhtelemendi WindowsFormsHost funktsioone.

Windowsi esitluste sihtasutus (WPF)
Windowsi esitluste sihtasutus (WPF)

13. Kirjeldage lühidalt CustomControli.

CustomControl laiendab olemasolevate juhtelementide funktsioone. See koosneb vaikelaadist failis Themes/Generic.xaml ja koodifailist. See on parim viis juhtteegi loomiseks ja seda saab ka kujundada või mallida.


14. Nimetage WPF-is kasutatavad tavalised sõlmed?

  • Esitlusfond
  • WindowsBase
  • PresentaionCore

15. Määratlege WPF-is tee animatsioonid

Tee animatsioon on animatsiooni tüüp, milles animeeritud objekt järgib tee geomeetriaga määratud rada.


16. Kas WPF-i rakendusi saab teha ilma XAML-ita?

Jah, WPF-i rakendusi saab luua ilma XAML-ita, kuna XAML-i kasutamine WPF-is on valiku küsimus.


17. Mis tüüpi aknad on WPF-is?

WPF-il on kolme tüüpi aknaid:

  • Tavaline aken
  • Lehekülje aken
  • Navigeeri aknas

18. Kuidas saab ListBoxi elemente sorteerida?

Sorteerimist saab teha kasutades objekti ItemsCollection atribuuti. ItemsCollection sisaldab atribuuti SortDescriptions, mis sisaldab System.ComponentModel.SortDescription eksemplare. Iga SortDescriptioni eksemplar määrab, kuidas elemente tuleks sortida, ja näitab, kas sortimine on kahanev või tõusev.

Näiteks sorteerib see kood ContentControli elemente nende sõnade arvu atribuudi alusel:

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

19. Mille poolest erineb MVVM MVC-st?

MVC tähistab Model-View Controller ja. MVVM tähistab Model-View ViewModel.

MVVM-is kasutatakse kontrolleri asemel vaatemudelit. See vaatemudel asub kasutajaliidese kihi all. See näitab käsuobjekte ja andmeid, mida vaade nõuab. See toimib nagu konteinerobjekt, kust vaade saab oma tegevused ja andmed.


20. Selgitage WPF-is marsruuditud sündmusi.

Sündmust, mis võib kutsuda välja käitlejaid rohkem kui ühel elemendipuus oleval kuulajal, mitte sündmusele kutsunud üksiku objekti asemel, nimetatakse marsruudi sündmuseks.


21. Kuidas kasutatakse faili System.Windows.Media.Visual WPF-is?

Seda kasutatakse alati, kui tekib vajadus kohandatud kasutajaliidese loomiseks. Tegemist on joonistusobjektiga, mis annab juhiseid eseme valmistamiseks. Need juhised hõlmavad joonise läbipaistmatust jne. Visual klass ühendab ka WPF hallatavate klasside ja MilCore.dll funktsioonid.


22. Millised on WPF-i erinevad paigutuspaneelid?

Nemad on:

  • Virnapaneel
  • Võrgu paneel
  • Lõuendi paneel
  • Dokipaneel
  • Mähi paneel

23. Nimetage WPF-is olulised alamsüsteemid

Peamised alamsüsteemid on:

  • Windows.Controls.Control
  • Windows.DependancyObject
  • Windows.FrameworkElement
  • Windows.Media.Visuals
  • objekt
  • Threading.DispatcherObject
  • Windows.UIElements

24. Mida BAML WPF-is tähendab?

BAML on binaarsete rakenduste märgistuskeele lühend. See pole midagi muud kui XAML, mis on märgistatud, sõelutud ja muudetud binaarseks vormiks. BAML on tihendatud deklaratiivne keel, mis laaditakse ja sõelutakse kiiremini kui XAML.


25. Mis vahe on lehe ja akna juhtelementidel WPF-is?

Põhiline erinevus seisneb selles, et akna juhtimine juhib Windowsi rakendust, lehe juhtimine aga hostitud brauserirakendusi. Samuti võib akna juhtimine sisaldada lehekülje juhtimist, kuid vastupidist ei saa juhtuda.


26. Mis on WPF-i lisatud omadused?

Manustatud atribuudid on põhimõtteliselt sõltuvusomadused, mis võimaldavad lisada väärtuse mis tahes juhuslikule objektile.


27. Mis on INotifyPropertyChanged liides?

InotifyPropertyChanged teavitab kliente, tavaliselt neid, kes on siduvad, kui kinnisvara väärtus muutub. Sellel on sündmus nimega PropertyChanged, mis tõstetakse esile iga kord, kui Mudelobjekti atribuuti muudetakse.


28. Mis on sündmuste ja käskude põhiline erinevus MVVM-mudelis?

Käsud on võimsamad ja neid on kasulik sündmuste asemel kasutada. Tegevused on sügavalt seotud sündmuse allikaga ja seetõttu ei saa sündmusi lihtsalt uuesti kasutada. Kuid käsud võimaldavad tõhusalt hallata mitut toimingut ühes kohas ja neid seejärel meie nõuete kohaselt uuesti kasutada.


29. Milline on praegu nähtava tööriistaspikri sundsulgemise meetod?

Selle saab sulgeda, määrates kohtspikri atribuudi IsOpen väärtuseks false.


30. Kirjutage DynamicResource ja StaticResource erinevused.

Kõige põhilisem erinevus seisneb selles, et StaticResource hindab ressurssi ainult üks kord, kuid DynamicResource hindab seda iga kord, kui ressurssi vajatakse. Ja sel põhjusel on DyanamicResource süsteemis raske, kuid see muudab lehtede või akende laadimise kiiremaks


31. Selgitage MVVM mustrit.

MVVM-muster jagab kasutajaliidese koodi kolmeks põhiosaks:

  • mudel - See esindab klasside kogumit, mis sisaldab andmebaasidest saadud andmeid.
  • Vaade - See on kood, mis nõustub andmete visuaalse esitusega.
  • Vaatemudel – See on kiht, mis seob vaate ja mudeli kokku. See esitab need andmed hõlpsasti mõistetaval viisil. See juhib ka seda, kuidas View rakendusega suhtleb.

32. Miks on WPF-is paigutuspaneele vaja?

Paigutuspaneelid on vajalikud selleks, et juhtnupud sobiksid erineva suurusega või erineva kirjasuurusega ekraanidele. Kui korraldame juhtelemendid fikseeritud pikslikoordinaatidele, siis see mudel teise keskkonda teisaldamisel ebaõnnestub. Sel põhjusel on paigutuspaneelid vajalikud.


33. Kirjutage lühidalt UserControlist.

UserControl koondab olemasolevad juhtelemendid üheks korduvkasutatavaks rühmaks. See sisaldab XAML-faili ja koodi. UserControli ei saa stiilida ega mallida.


34. Kuidas saab määrata, kas külmutatav objekt on külmutatud?

Objekti omadust IsFrozen saab kasutada selleks, et teha kindlaks, kas külmutatav objekt on külmunud.


35. Mis on mõõtühik WPF-is?

Kõik mõõtmised tehakse seadmest sõltumatutes pikslites ehk loogilistes pikslites. Üks piksel on 1/96 tolli osa. Neid loogilisi piksleid nimetatakse alati kahekordseteks, see võimaldab neil olla ka murdosa väärtus.


36. Mis on kaunistaja?

Need on spetsiaalsed raamistikuelemendid, mis pakuvad kasutajale visuaalseid vihjeid. Neid kasutatakse ka elementidele käepidemete lisamiseks ja teabe andmiseks juhtelemendi oleku kohta. Kaunistajad on seotud UIE-elemendiga ja renderdatakse pinnal, mis asub kaunistatud elemendi kohal. Seda pinda nimetatakse AdornerLayeriks. Kaunistajad paigutatakse enamasti suhteliselt piiratud elemendi suhtes.


37. Selgitage serialiseerimist?

See on protsess, mille käigus teisendatakse objekti olek baitide vooks.


38. Kas WPF toetab MDI-d?

WPF ei toeta MDI-d. UserControli saab kasutada MDI-ga samade funktsioonide pakkumiseks.


39. Mis on XBAP?

XBAP on XAML-i brauserirakenduse lühendatud vorm. See võimaldab WPF-i rakendustel töötada veebibrauserites. NET-i raamistiku installimine klientmasinasse on WPF-rakenduste käivitamise eeltingimus. Kuid hostitud rakendustele ei anta täielikku juurdepääsu kliendi masinale ja need käivitatakse liivakastikeskkonnas. WPF-i abil saab luua ka selliseid rakendusi, mis jooksevad otse brauseris. Neid rakendusi nimetatakse XBAP-ks.


40. Mis mõttes on WPF ja Silverlight sarnased?

Silverlight ja WPF on sarnased selles mõttes, et mõlemad kasutavad XAML-i ja jagavad sama koodi, süntaksit ja teeke.


41. Kuidas panna tööriistavihje ilmuma, kui liigutate kursorit keelatud elemendi kohal?

Sel eesmärgil saab kasutada atribuuti ShowOnDisabled. See kuulub ToolTipService klassi.


42. Kuidas panna ListBox sujuvalt kerima?

ListBox on konfigureeritud vaikimisi kerima üksuste kaupa. See sõltub iga elemendi kõrgusest ja kerimistoimingust, andes seega konarliku tunde. Parem viis on konfigureerida kerimise toiming nii, et see nihutab üksusi mõne piksli võrra olenemata nende kõrgusest. Selleks määrake atribuudi ScrollViewer.CanContentScroll väärtuseks "false". See aga kaotab loendikasti virtualiseerimisomadused.


43. Kust algab täitmine WPF-rakenduses?

Visual Studios loodud WPF-rakendused töötavad ilma põhimeetodita. Seda seetõttu, et rakendused on XAML-ist kompileerimisel erijuhtudel. See tähendab, et Visual Studio lisab XAML-failile rakenduseDefinitioni ehitustoimingu. Selle tulemuseks on põhimeetodi automaatne genereerimine.


44. Kas Windowsi teenust saab luua WPF-i abil?

Ei, Windowsi teenuseid ei saa WPF-i abil luua. WPF on esitluskeel. Windowsi teenused vajavad teatud GUI-ga seotud funktsioonide täitmiseks eriõigusi. Seega, kui see ei saa vajalikke õigusi, annab see vigu.


45. Millised on WPF-i Marsruudi sündmused?

WPF-is on kolme tüüpi Marsruuditud sündmusi. Need on:

  • otsene – Selle sündmuse saab esile kutsuda ainult element, millest see alguse sai.
  • Tunneldamine – Selle sündmuse tõstab esmalt element, millest see alguse sai, ja seejärel tõstab selle visuaalse puu iga järjestikune konteiner.
  • Mullitamine – Seda sündmust tõstab esmalt visuaalse puu ülemine konteiner ja seejärel tõstetakse seda iga järjestikuse konteineri poolt, mis asub kõige ülemise all, kuni see jõuab elemendini, kust see alguse sai.

46. ​​Miks on parem pakkida üksused ComboBoxItem'i?

Sellel on mõned olulised omadused, nagu IsSelected ja IsHighlighted, ning ka mõned vajalikud sündmused, nagu Valitud ja Valimata. ComboBoxItem on sisu juhtelement ja on seega väga kasulik lihtsate stringide lisamiseks ComboBoxi.


47. Kuidas hankida ItemsControlis üksuste automatiseerimise ID-sid?

Parim viis selleks on määrata atribuut Name, kuna seda kasutatakse vaikimisi automatiseerimiseks. Kui aga on vaja anda elemendile muu ID kui selle nimi, saab atribuuti AutomationProperties.AutomationID seadistada vastavalt vajadusele.


48. Kuidas saab WPF-rakenduses käsurea argumente hankida?

Eelistatuim meetod selleks on kutsuda System.Environment.GetCommandLineArgs suvalises rakenduse suvalises kohas.


49. Nimetage klassid, mis sisaldavad suvalist sisu.

Sisu kontroll

HeaderedContent Control

Üksuste juhtimine

HeaderedItems Control


50. Millises nimeruumis on hüpikakna ja pöidla juhtelemendid?

Nimeruumis system.windows.controls.primitives on juhtnupud "Hüpik" ja "Pöial".


51. Selgitage, mis on XAML? Mis vahe on XAML-il? XML ja XAML?

XAML on lühend ingliskeelsest terminist eXtensible Application Markup Language. See on keel, mida kasutatakse .NET-objektide loomiseks. Selle on välja töötanud Microsoft järgmise põlvkonna rakenduste kasutajaliidese kirjutamiseks.

XML on mõeldud andmete salvestamiseks või salvestatud andmetega töötamiseks, samas kui XAML on XML-i laiendatud versioon, mida kasutatakse.NET-i programmeerimiseks.


52. Mainige XAML-i kasutamise eelist?

XAML-i kasutamise eeliseks on

  • XAML-koodi on selgesti loetav ja need on lühikesed
  • Disaineri koodi ja loogika eraldamine
  • Graafilise disaini jaoks kasutatavad tööriistad, nagu väljendusegu, nõuavad allikana XAML-i
  • See eraldab selgelt disaineri ja arendaja rollid

53. Kuidas saate kodeerida, et XAML-is kuvada "Hello World"?

Kuvatakse "Tere maailm".

<page xmlns= '' ''>

<TextBlock>

Hello, World!

</TextBlock>

</Page>

54. Kuidas XAML-is graafilisi komponente täpsustatakse?

XAML-is määratakse graafilised komponendid atribuutidega avatud või suletud siltidega.

Näiteks

  • Märgistage sisu

Click

  • Sildi ilma sisuta

< Nupp/>


55. Mis on atribuutide süntaks XAML-is?

XAML-is määrab atribuudi süntaks elemendi atribuudi deklareerimise teel atribuudi väärtuse või nimetab sündmuse sündmusekäitleja. Atribuudi väärtus tuleks panna kahe jutumärgi (“) vahele.

Näiteks

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

XML


56. Selgitage XAML-i sisu omadusi?

XAML esindab keelefunktsiooni, mille puhul klass saab määrata täpselt ühe oma omadustest XAML-i atribuutina


57. Selgitage, mis on märgistuslaiend XAML-is?

Märgistuslaiendid on XAML-i kohahoidjad, mida kasutatakse atribuudi lahendamiseks käitusajal. Märgistuslaiend võimaldab teil XAML-i laiendada ja atribuutide süntaksi abil saate määrata ka mis tahes atribuudi, mida saab XAML-is määrata. Märgistuslaienduse eesmärk on stringi töötlemine ja objekti tagastamine. Mõned standardsed märgistuslaiendid on xNull, x: Array, :Staatiline ressurss ja Dünaamiline ressurss.


58. Millised on neli üldist XAML-i elementide tüüpi?

Neli üldist tüüpi XAML elementi on

  • Juureelemendid
  • Paneeli elemendid
  • Juhtimiselemendid
  • Geomeetrilised elemendid

59. Mida X: prefiks XAML-is tähistab?

X: eesliidet kasutatakse XAML-i nimeruumi kaardistamiseks mallides.


60. Millised on erinevad X: prefiksid, mida kasutatakse XAML keeles?

  • x: Võti à See määrab igale ressursisõnastiku ressursile kordumatu võtme
  • x: Classà See määrab CLR-i (Common Language Runtime) nimeruumi ja klassi nime klassile, mis pakub koodi
  • x: nimi à Määrab käitusaegse objekti nime eksemplarile, mis eksisteerib käitusaja koodis pärast objektielemendi töötlemist
  • x: Staatiline à See võimaldab viidet, mis tagastab staatilise väärtuse, mis muidu on XAML-iga ühilduv atribuut
  • x: Tüüp à See loob tüübinime põhjal tüübiviite

61. Kuidas saab atribuudi atribuuti määrata sõnasõnaliseks stringiks, mitte märgistuslaiendiks?

Märgistuspikenduste vältimiseks peate kasutama tühja paari lokkis traksidega nagu

Sisu = "{} {See ei ole märgistuslaiend}"/>


62. Mis tüüpi lapsi võib objektelemendil XAML-is olla?

Objektielemendil võib olla kolme tüüpi lapsi

  • Kollektsiooni esemed
  • Sisu atribuudi väärtus
  • Väärtus, mille saab tüübi järgi objektielemendiks teisendada

63. Selgitage, mis on Type Converter?

Tüübimuundur on abiks stringi teisendamisel sobivasse väärtustüüpi, kui märgistuslaiendit ei kasutata. Tüübimuundur defineerib neli liiget stringiks ja stringist teisendamiseks XAML-i eesmärkidel.

  • CanConvertTo
  • CanConvertFrom
  • TeisendaTo
  • TeisendaFrom

64. Selgitage objektielemendi süntaksit XAML-is?

CLR-klassi või -struktuuri loomiseks XML-elemendi deklareerimise teel kasutatakse XAML-märgistussüntaksit. Seda süntaksit nimetatakse objektielemendi süntaksiks.


65. Kuidas saab XAML-is objekte deklareerida?

Objektide deklareerimiseks XAML-is on kolm võimalust

  • Otse, kasutades objektielemendi süntaksit: seda süntaksit kasutatakse juurobjektide või pesastatud objektide deklareerimiseks, mis määravad atribuudi väärtused
  • Kaudselt atribuudi süntaksi abil: see süntaks kasutab tekstisisest stringi väärtust, millel on juhised objekti loomise kohta. Atribuudi väärtuse määramiseks vastloodud viitele kasutab XAML-i parser seda stringi
  • Märgistuslaiendi kasutamine

66. Mida peaks XAML-dokumendi juurelement sisaldama?

XAML-dokumendis koosneb juurelement ainult teatud elementidest ja need elemendid on aken, lõuend või paneelid.


67. Mis on andmete sidumine XAML-iga?

Andmete sidumine pakub lihtsat viisi andmete kuvamiseks ja nendega suhtlemiseks. Näide demonstreerib, kuidas XAML-is andmeid siduda. Sidumine XAML-is toimub {binding….} süntaksi abil.


68. Selgitage, kuidas saate kuvada erinevaid andmeid töö- ja projekteerimisajal?

  • Üks viis andmete kuvamiseks käitamis- ja kavandamisajal on andmete deklareerimine XAML-is
  • Teine viis selleks on deklareerida see XAML-is, kasutades disaineri XML-nimeruumi erinevaid andmeatribuute. Tavaliselt deklareeritakse see nimeruum eesliitega ad:.

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


69. Selgitage, mis on funktsioon x: võtmedirektiiv XAML-is?

X: võti tuvastab üheselt elemendid, mis on loodud ja millele viidatakse XAML-i määratletud sõnastikus. Lisades XAML-i objektielemendile x: Key väärtuse, saab ressursisõnastiku ressurssi tuvastada ja see on kõige levinum viis tuvastamiseks.


70. Selgitage, milleks on omaduselemendi süntaksi kasutamine?

Atribuudielemendi süntaksi abil saate lisada alamelemendi nimega parent.propertyName.


71. Kuidas saab määratleda XAML-is kasutatavaid kohandatud klasse?

Kohandatud klasse kasutatakse kahel viisil

  • Koodiga, mis loob rakenduse Primary Windows Presentation Foundation (WPF) või selle taga oleva koodi sees
  • Eraldi koosluses klassina, näiteks käivitatavas failis või DLL-is, mida kasutatakse klassiteegina

72. Mis on Xamli nimeruum?

Nimeruumi saab määratleda kui keskkonda või abstraktset konteinerit, mida kasutatakse kordumatute identifikaatorite või sümbolite loogilise rühmituse hoidmiseks.

Need intervjuu küsimused aitavad ka teie viva (suuline)

Jaga

üks kommentaar

  1. Kontrollige uuesti tunneli ja mulli sündmuse määratlust, mis tundub olevat vahetatud.
    Andke mulle teada, kui ma eksin.

Jäta vastus

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on märgitud *