Le 72 migliori domande e risposte all'intervista WPF (2025)
Ecco le domande e le risposte all'intervista WPF per le matricole e i candidati esperti per ottenere il lavoro dei loro sogni.
1. Cos'è WPF?
WPF è l'ultima API di presentazione di Microsoft Windows. È un motore grafico 2D e 3D. Le sue capacità includono: -
- Tutti i controlli utente comuni. Ad esempio, caselle di controllo, pulsanti, cursori ecc.
- Supporta il flusso e la correzione dei documenti in formato
- tutte le funzionalità di Flash e HTML
- Associazione dati
- Multimedia
- Animazione
Download gratuito del PDF: domande e risposte all'intervista WPF
2. Quali sono i tipi di documenti supportati da WPF?
Due tipi di documenti supportati da Windows Presentation Foundation (WPF) sono il formato Flow e il documento a formato fisso. Il documento in formato flusso altera il contenuto per adattarlo alle dimensioni dello schermo mentre il documento in formato fisso presenta il contenuto indipendentemente dalle dimensioni dello schermo.
3. Assegnare un nome allo spazio dei nomi richiesto per lavorare con il 3D.
Lo spazio dei nomi richiesto per lavorare in 3D è System.Windows.Media.Medi3D.
4. È giusto dire che WPF ha sostituito DirectX?
No, WPF non potrà mai sostituire DirectX. WPF non può essere utilizzato per creare giochi con una grafica straordinaria. WPF è pensato per sostituire Windows Form, non DirectX.
5. Cosa sono le proprietà di dipendenza?
Le proprietà che appartengono a una classe specifica ma che possono essere utilizzate per un'altra sono chiamate proprietà di dipendenza.

6. Come è possibile aumentare proporzionalmente la dimensione della StatusBar?
Sostituendo l'attributo ItemsPanel di StatusBar con una griglia. Le colonne della griglia possono essere opportunamente configurate per ottenere il risultato desiderato.
7. Cosa sono gli oggetti Freezable in WPF?
Un oggetto il cui stato è bloccato, in modo da diventare immutabile, è noto come oggetto congelabile. Tali oggetti funzionano meglio. È anche più sicuro se è necessario condividerli tra thread.
8. Perché WPF dovrebbe essere preferito ad Adobe Flash?
WPF è una tecnologia più recente e quindi dispone degli strumenti di sviluppo più recenti. Supporta una gamma più ampia di linguaggi di programmazione e dispone di un robusto riutilizzo dei controlli.
9. In che modo Silverlight è diverso dall'applicazione browser WPF?
Una delle differenze principali è che è necessario .NET Framework per eseguire le applicazioni browser WPF sul computer client. Ma Silverlight funziona utilizzando solo il plug-in. Un altro punto di differenza è che le applicazioni realizzate in WPF dipendono dal file OS poiché .NET Framework funziona solo su Windows. D'altra parte, il plug-in Silverlight può essere installato anche su quei sistemi operativi che non sono Windows.
10. Assegnare un nome ai metodi presenti nel DependencyObject.
Ha tre oggetti, vale a dire:
- Valore impostato
- Cancella valore
- Ottieni valore
11. Scrivi di PRISM.
PRISM è un framework per la creazione di applicazioni complesse per WPF, Silverlight o Windows Phone. PRISM utilizza MVVM, IC, Command Patterns, DI e Separation of Concerns per ottenere un accoppiamento allentato.
12. È possibile utilizzare Windows Form in un'applicazione WPF?
Sì, il modulo Windows può essere utilizzato in WPF. Il modulo Windows può essere visualizzato come pop WPF. I controlli di questo Window Form possono essere posizionati oltre ai controlli WPF in una pagina WPF utilizzando le funzioni del controllo WindowsFormsHost preinstallato.

13. Descrivi brevemente CustomControl.
CustomControl amplia le funzioni dei controlli esistenti. È costituito da uno stile predefinito in Themes/Generic.xaml e da un file di codice. È il modo migliore per creare una libreria di controlli e può anche essere dotato di stili o modelli.
14. Nominare gli assembly comuni utilizzati in WPF?
- PresentazioneFondazione
- Windows Base
- PresentaionCore
15. Definire le animazioni del percorso in WPF
L'animazione del percorso è un tipo di animazione in cui l'oggetto animato segue un percorso impostato dalla geometria del percorso.
16. È possibile creare applicazioni WPF senza XAML?
Sì, le applicazioni WPF possono essere create senza XAML poiché l'utilizzo di XAML in WPF è una questione di scelta.
17. Quali sono i tipi di finestre in WPF?
WPF dispone di tre tipi di finestre:
- Finestra normale
- Finestra della pagina
- Finestra di navigazione
18. Come possono essere ordinati gli elementi in un ListBox?
L'ordinamento può essere eseguito utilizzando una proprietà dell'oggetto ItemsCollection. ItemsCollection contiene un attributo, SortDescriptions, che contiene le istanze System.ComponentModel.SortDescription. Ogni istanza SortDescription definisce come devono essere ordinati gli elementi e indica se l'ordinamento è discendente o ascendente.
Ad esempio, questo codice ordina gli elementi di ContentControl in base alla loro proprietà di conteggio delle parole:
myItemsControl.Items.SortDescriptions.Add(new SortDescription("WordCount", ListSortDirection.Descending));
19. In che modo MVVM è diverso da MVC?
MVC sta per Model-View Controller e.MVVM sta per Model-View ViewModel.
In MVVM, viene utilizzato View Model al posto di un controller. Questo modello di visualizzazione è presente sotto il livello dell'interfaccia utente. Rivela gli oggetti comando e i dati richiesti dalla vista. Funziona come un oggetto contenitore da cui la vista ottiene le sue azioni e i suoi dati.
20. Spiegare gli eventi indirizzati in WPF.
Un evento, che può invocare gestori su più di un ascoltatore presente in un albero di elementi, invece del singolo oggetto che ha chiamato l'evento, è noto come evento indirizzato.
21. Come viene utilizzata la dll System.Windows.Media.Visual in WPF?
Viene utilizzato ogni volta che si presenta l'esigenza di creare un'interfaccia utente personalizzata. È un oggetto da disegno, che fornisce istruzioni per realizzare un oggetto. Queste istruzioni includono l'opacità ecc. del disegno. La classe Visual collega inoltre le funzionalità delle classi gestite WPF e di MilCore.dll.
22. Quali sono i vari pannelli di layout in WPF?
Essi sono:
- Pannello Stack
- Pannello griglia
- Pannello di tela
- Pannello Dock
- Avvolgere il pannello
23. Assegnare un nome ai sottosistemi importanti in WPF
I principali sottosistemi sono:
- Windows.Controls.Control
- Windows.DependancyObject
- Windows.FrameworkElement
- Windows.Media.Visuals
- Oggetto
- Threading.DispatcherObject
- Windows.UIElements
24. Cosa significa BAML in WPF?
BAML è l'abbreviazione di Binary Application Markup Language. Non è altro che XAML che è stato tokenizzato, analizzato e modificato in forma binaria. BAML è un linguaggio dichiarativo compresso, che viene caricato e analizzato più rapidamente di XAML.
25. Qual è la differenza tra i controlli pagina e finestra in WPF?
La differenza fondamentale è che Window Control presiede all'applicazione Windows mentre Page Control presiede alle applicazioni browser ospitate. Inoltre, il controllo Finestra può contenere Controllo Pagina, ma non può verificarsi il contrario.
26. Cosa sono le proprietà associate in WPF?
Le proprietà associate sono fondamentalmente proprietà di dipendenza che consentono di associare un valore a qualsiasi oggetto casuale.
27. Cos'è l'interfaccia INotifyPropertyChanged?
InotifyPropertyChanged avvisa i client, generalmente quelli che stanno effettuando l'associazione, se il valore di una proprietà viene modificato. Ha un evento, chiamato PropertyChanged, che viene generato ogni volta che viene modificata una proprietà dell'oggetto Model.
28. Qual è la differenza fondamentale tra eventi e comandi nel modello MVVM?
I comandi sono più potenti e vantaggiosi da usare al posto degli eventi. Le azioni sono profondamente connesse con la fonte dell'evento e, pertanto, gli eventi non possono essere riutilizzati facilmente. Ma i comandi consentono di mantenere in modo efficiente più azioni in un unico posto e quindi riutilizzarle secondo le nostre esigenze.
29. Qual è il metodo per forzare la chiusura di una descrizione comando attualmente visibile?
Può essere chiuso impostando la proprietà IsOpen della descrizione comando su false.
30. Scrivere le differenze tra DynamicResource e StaticResource.
La differenza fondamentale è che StaticResource valuta la risorsa solo una volta, ma DynamicResource la valuta ogni volta che la risorsa è richiesta. E per questo motivo, DynamicamicResource è pesante per il sistema ma accelera il caricamento delle pagine o delle finestre
31. Spiegare il modello MVVM.
Il pattern MVVM divide il codice dell'interfaccia utente in 3 parti fondamentali:
- Modello - Rappresenta un insieme di classi che contengono i dati ricevuti dai database.
- Visualizza - È il codice che concorda con la rappresentazione visiva dei dati.
- Visualizza modello – È il livello che lega insieme Vista e Modello. Presenta questi dati in un modo che è facile da capire. Controlla anche il modo in cui View interagisce con l'applicazione.
32. Perché sono necessari i pannelli di layout in WPF?
I pannelli di layout sono necessari in modo che i controlli si adattino a schermi di dimensioni diverse o con dimensioni di carattere diverse. Se disponiamo i controlli su coordinate pixel fisse, questo modello fallirà se spostato in un ambiente diverso. Per questo motivo sono necessari i pannelli Layout.
33. Scrivi in breve su UserControl.
UserControl racchiude i controlli esistenti in un singolo gruppo riutilizzabile. Contiene un file XAML e un codice. Non è possibile applicare stili o modelli a UserControl.
34. Qual è il modo per determinare se un oggetto Freezable è congelato?
La proprietà "IsFrozen" dell'oggetto può essere utilizzata per determinare se l'oggetto congelabile è congelato.
35. Qual è l'unità di misura in WPF?
Tutte le misurazioni vengono effettuate in pixel indipendenti dal dispositivo o pixel logici. Un pixel è 1/96 di parte di pollice. Questi pixel logici sono sempre menzionati come doppi, questo consente loro di avere anche un valore frazionario.
36. Cos'è un adornatore?
Sono un tipo speciale di FrameworkElement che forniscono indizi visivi all'utente. Vengono utilizzati anche per aggiungere maniglie agli elementi e fornire informazioni sullo stato di un controllo. Gli elementi decorativi sono associati all'UIElement e vengono sottoposti a rendering su una superficie che si trova sopra l'elemento decorato. Questa superficie è chiamata AdornerLayer. Gli ornamenti sono per lo più posizionati rispetto all'elemento delimitato.
37. Spiegare la serializzazione?
È il processo di conversione dello stato di un oggetto in un flusso di byte.
38. MDI è supportato in WPF?
MDI non è supportato in WPF. UserControl può essere utilizzato per fornire le stesse funzionalità di MDI.
39. Cos'è XBAP?
XBAP è la forma abbreviata di XAML Browser Application. Consente alle applicazioni WPF di essere eseguite all'interno dei browser Web. L'installazione di .NET Framework sul computer client è un prerequisito per l'esecuzione delle applicazioni WPF. Ma le applicazioni ospitate non hanno piena ammissione alla macchina del cliente e vengono eseguite in un ambiente sandbox. Con WPF è possibile creare anche applicazioni di questo tipo che vengono eseguite direttamente nel browser. Queste applicazioni sono chiamate XBAP.
40. In che senso WPF e Silverlight sono simili?
Silverlight e WPF sono simili nel senso che entrambi utilizzano XAML e condividono lo stesso codice, sintassi e librerie.
41. Come far apparire una descrizione comando passando il mouse su un elemento disabilitato?
A questo scopo è possibile utilizzare la proprietà ShowOnDisabled. Appartiene alla classe ToolTipService.
42. Come si può fare in modo che ListBox scorra agevolmente?
Per impostazione predefinita, ListBox è configurato per lo scorrimento elemento per elemento. Questo dipende dall'altezza di ogni elemento e dall'azione di scorrimento, dando così una sensazione ruvida. Il modo migliore è configurare l'azione di scorrimento in modo che sposti gli elementi di alcuni pixel indipendentemente dalla loro altezza. Questo viene fatto impostando la proprietà ScrollViewer.CanContentScroll su "false". Ciò, tuttavia, farà perdere al ListBox la proprietà di virtualizzazione.
43. Dove inizia l'esecuzione in un'applicazione WPF?
Le applicazioni WPF create in Visual Studio vengono eseguite senza un metodo Main. Questo perché le applicazioni presentano casi speciali quando vengono compilate da XAML. Ciò significa che Visual Studio allega un'azione di compilazione di ApplicationDefinition al file XAML. Ciò comporta la generazione automatica di un metodo Main.
44. È possibile creare un servizio Windows utilizzando WPF?
No, i servizi Windows non possono essere creati utilizzando WPF. WPF è un linguaggio di presentazione. I servizi Windows necessitano di autorizzazioni specifiche per eseguire alcune funzioni relative alla GUI. Pertanto, se non ottiene le autorizzazioni richieste, restituisce errori.
45. Quali sono i diversi tipi di eventi indirizzati in WPF?
Esistono tre tipi di eventi indirizzati in WPF. Sono:
- Diretto – Questo evento può essere generato solo dall'elemento in cui è stato originato.
- Tunneling – Questo evento viene innanzitutto generato dall'elemento in cui è stato originato e quindi viene generato da ogni contenitore consecutivo nell'albero visivo.
- Spumeggiante – Questo evento viene prima sollevato dal contenitore più in alto nell'albero visivo e poi viene sollevato da ogni contenitore consecutivo che si trova sotto quello più in alto, fino a raggiungere l'elemento da cui è stato originato.
46. Perché è meglio racchiudere gli elementi in ComboBoxItem?
Ha alcune proprietà importanti come IsSelected e IsHighlighted e anche alcuni eventi necessari come Selected e Unselected. ComboBoxItem è un controllo del contenuto ed è quindi molto utile per aggiungere stringhe semplici a un ComboBox.
47. Come ottenere gli ID di automazione degli elementi in un ItemsControl?
Il modo migliore per farlo è impostarne la proprietà Nome poiché viene utilizzata per scopi di automazione per impostazione predefinita. Ma se è necessario fornire un ID a un elemento, diverso dal suo nome, la proprietà AutomationProperties.AutomationID può essere impostata secondo necessità.
48. Come è possibile recuperare gli argomenti della riga di comando in un'applicazione WPF?
Il metodo preferito a questo scopo consiste nel chiamare System.Environment.GetCommandLineArgs in qualsiasi punto casuale dell'applicazione.
49. Indicare il nome delle classi, che contengono contenuto arbitrario.
Controllo dei contenuti
Controllo del contenuto intestato
Controllo degli articoli
Controllo degli elementi intestati
50. Quale NameSpace ha i controlli "Popup" e "Thumb"?
Lo spazio dei nomi system.windows.controls.primitives dispone dei controlli "Popup" e "Thumb".
51. Spiega cos'è XAML? Qual è la differenza tra XML e XAML?
XAML è l'acronimo di eXtensible Application Markup Language. È il linguaggio utilizzato per istanziare oggetti .NET. È il linguaggio sviluppato da Microsoft scrivere l'interfaccia utente per le applicazioni di prossima generazione.
XML è progettato per archiviare dati o utilizzare i dati archiviati, mentre XAML è la versione estesa di XML utilizzata per la programmazione .NET.
52. Menzionare il vantaggio di utilizzare XAML?
Il vantaggio dell'utilizzo di XAML è
- Il codice XAML è chiaro da leggere e è breve
- Separazione del codice e della logica del progettista
- Strumenti come la fusione di espressioni utilizzata per la progettazione grafica richiedono XAML come origine
- Separa chiaramente i ruoli di designer e sviluppatore
53. Come puoi codificare per visualizzare "Hello World" in XAML?
Visualizzazione di "Hello World".
<page xmlns= '' ''> <TextBlock> Hello, World! </TextBlock> </Page>
54. In XAML come vengono specificati i componenti grafici?
In XAML, i componenti grafici vengono specificati tramite tag aperti o chiusi con attributi.
Per esempio,
- Tagga con i contenuti
Clicchi
- Tag senza contenuto
<Pulsante/>
55. Cos'è la sintassi degli attributi in XAML?
In XAML, la sintassi degli attributi imposta un valore per una proprietà o assegna un nome al gestore di un evento, dichiarando un attributo su un elemento. Il valore dell'attributo deve essere racchiuso tra due virgolette (").
Per esempio,
< Button Background = "Black" Foreground "Red" Content = "This is an operating button"/>
56. Spiegare le proprietà del contenuto XAML?
XAML rappresenta una funzionalità del linguaggio in base alla quale una classe può assegnare esattamente una delle sue proprietà come proprietà XAML
57. Spiega cos'è l'estensione Markup in XAML?
Le estensioni di markup sono segnaposto in XAML utilizzati per risolvere la proprietà in fase di esecuzione. Un'estensione di markup ti consente di estendere XAML e utilizzando la sintassi degli attributi puoi anche impostare qualsiasi proprietà che può essere impostata in XAML. Lo scopo dell'estensione di markup è elaborare una stringa e restituire un oggetto. Alcune delle estensioni di markup standard sono xNull, x: Italia, : Risorsa statica e Risorsa dinamica.
58. Quali sono i quattro tipi generali di elementi XAML?
I quattro tipi generali di elementi XAML sono
- Elementi radice
- Elementi del pannello
- Elementi di controllo
- Elementi geometrici
59. Cosa indica il prefisso X: in XAML?
Il prefisso X: viene utilizzato per mappare lo spazio dei nomi XAML nei modelli.
60. Quali sono i vari prefissi X: utilizzati nel linguaggio XAML?
- x: Chiave à Imposta una chiave univoca per ogni risorsa in un Dizionario delle risorse
- x: Classà Specifica il namespace CLR (Common Language Runtime) e il nome della classe per la classe che fornisce il codice
- x: Nome à Specifica un nome di oggetto runtime per l'istanza che esiste nel codice runtime dopo l'elaborazione di un elemento oggetto
- x: Statico à Abilita un riferimento che restituisce un valore statico che altrimenti sarebbe una proprietà compatibile con XAML
- x: Type à Costruisce un riferimento Type in base al nome del tipo
61. Come è possibile impostare un attributo di proprietà come stringa letterale e non come estensione di markup?
Per evitare l'estensione del markup devi usare una coppia vuota di parentesi graffe come
Contenuto = "{} {Questa non è un'estensione di markup}"/>
62. Quali sono i tipi di elementi secondari che l'elemento oggetto può avere in XAML?
Tre tipi di figli che un elemento oggetto può avere
- Articoli da collezione
- Un valore per la proprietà del contenuto
- Il valore che può essere convertito di tipo nell'elemento oggetto
63. Spiegare cos'è Type Converter?
Il convertitore di tipi è utile per convertire una stringa nel tipo di valore appropriato quando non è necessario utilizzare estensioni di markup. Il convertitore di tipi definisce quattro membri per la conversione da e verso stringhe per scopi XAML.
- CanConvertTo
- CanConvertFrom
- Convertire in
- Converti da
64. Spiegare la sintassi degli elementi oggetto in XAML?
Per istanziare una classe o una struttura CLR dichiarando un elemento XML, si utilizza una sintassi di markup XAML. Questa sintassi è definita sintassi dell'elemento oggetto.
65. In quali modi è possibile dichiarare oggetti in XAML?
Per dichiarare oggetti in XAML, esistono tre modi
- Direttamente, utilizzando la sintassi dell'elemento oggetto: questa sintassi viene utilizzata per dichiarare oggetti radice o oggetti nidificati che impostano valori di proprietà
- Indirettamente utilizzando la sintassi degli attributi: questa sintassi utilizza un valore di stringa in linea che contiene un'istruzione su come creare un oggetto. Per impostare il valore della proprietà su un riferimento appena creato, il parser XAML utilizza questa stringa
- Utilizzando un'estensione di markup
66. Cosa dovrebbe contenere un elemento radice di un documento XAML?
Nel documento XAML, l'elemento root è costituito solo da determinati elementi e questi elementi sono Window, Canvas o pannelli.
67. Che cos'è l'associazione dei dati con XAML?
Il data binding offre un modo semplice per visualizzare e interagire con i dati. Un esempio mostrerà come eseguire il data binding in XAML. Il binding in XAML viene eseguito utilizzando la sintassi {binding….}.
68. Spiegare come è possibile visualizzare dati diversi in fase di esecuzione e in fase di progettazione?
- Un modo per visualizzare i dati in fase di esecuzione e di progettazione consiste nel dichiarare i dati in XAML
- Un altro modo per farlo è dichiararlo in XAML utilizzando vari attributi di dati dello spazio dei nomi XML del designer. Con il prefisso ad:, questo spazio dei nomi viene in genere dichiarato.
xmlns: d= http://schemas.microsoft.com/expression/blend/2008
69. Spiega qual è la funzione x: direttiva chiave in XAML?
X: la chiave identifica in modo univoco gli elementi creati e a cui si fa riferimento in un dizionario definito XAML. Aggiungendo un valore x: Key a un elemento oggetto XAML è possibile identificare una risorsa nel dizionario risorse ed è il modo più comune per identificarla.
70. Spiegare qual è l'uso della sintassi degli elementi proprietà?
Con l'aiuto della sintassi dell'elemento proprietà, puoi aggiungere elementi figli con un nome sotto forma di parent.propertyName.
71. Come possono essere definite le classi personalizzate utilizzate in XAML?
Le classi personalizzate vengono utilizzate in due modi
- Con il codice che produce l'applicazione primaria Windows Presentation Foundation (WPF) o all'interno del code-behind
- In un assembly separato come classe, ad esempio un eseguibile o una DLL utilizzata come libreria di classi
72. Cos'è lo spazio dei nomi Xaml?
Lo spazio dei nomi può essere definito come un ambiente o un contenitore astratto utilizzato per contenere un raggruppamento logico di identificatori o simboli univoci.
Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)
Ricontrolla la definizione dell'evento tunnel e bolla che sembra scambiata.
Fammi sapere se sbaglio.