Tutorial WPF per principianti
โก Riepilogo intelligente
WPF (Windows Pronta per Foundation) รจ Microsoftil quadro di riferimento per la costruzione di contenuti ricchi Windows Applicazioni desktop. I principianti imparano come XAML, data binding e grafica accelerata dall'hardware si combinano per creare interfacce utente scalabili e visivamente accattivanti con meno codice.

Che cos'รจ WPF?
WPF รจ una struttura per la costruzione Windows applicazioni che consentono agli sviluppatori di creare interfacce utente ricche con animazioni 3D e colori vivaci utilizzando una minore complessitร del codice. ร un motore di rendering vettoriale che utilizza l'accelerazione hardware delle moderne schede grafiche, rendendo l'interfaccia utente piรน veloce e altamente scalabile. WPF sta per Windows Pronta per Foundation.
WPF puรฒ essere considerato un'evoluzione di WinForms. Fornisce un sistema di visualizzazione grafica facile da usare per Windows e offre una netta separazione tra interfaccia utente e logica di business.
Le applicazioni WPF vengono in genere distribuite come programmi desktop autonomi e possono anche essere ospitate come oggetti incorporati in altre applicazioni.
Perchรจ WPF?
Esistono numerose ragioni per utilizzare la piattaforma WPF. Alcune delle piรน importanti sono:
- Una piattaforma ideale da utilizzare se รจ necessario gestire vari tipi di media
- WPF consente di creare un'interfaccia utente con skin. ร utile anche quando รจ necessario caricare una porzione dell'interfaccia utente o si desidera associare dati XML.
- Ti consente di sfruttare i vantaggi della grande libreria di classi .NET su cui รจ basata Tecnologia .NET
- Indipendenza dalla risoluzione, quindi le applicazioni sviluppate con WPF possono essere eseguite su piccoli schermi di tablet o su monitor da 20 pollici.
- WPF si basa su DirectX anzichรฉ su WinAPI. Utilizza il sistema grafico del computer client, offrendo quindi una maggiore potenza di rendering grafico.
- Supporta un modello di documento a flusso che consente una qualitร di impaginazione paragonabile a quella del "desktop publishing".
- Aspetto e comportamento sono debolmente accoppiati. Ciรฒ consente a progettisti e sviluppatori di lavorare su due modelli separati.
- Nel framework WPF, รจ possibile progettare graficamente strumenti utilizzando semplici documenti XML anzichรฉ analizzare il codice.
- Consente di utilizzare l'accelerazione hardware per disegnare la GUI, per prestazioni migliori
Vediamo ora come si รจ evoluto il quadro di riferimento nel corso del tempo.
Storia del WPF
Windows 1.0 รจ stato il primo ambiente GUI da MicrosoftFunzionava come un livello sovrapposto al DOS, affidandosi ai sistemi GDI e USER per la grafica e l'interfaccia utente.
DirectX รจ stato introdotto nel 1995 come sistema grafico ad alte prestazioni destinato ai videogiochi e ad altri ambienti che richiedono un'elevata potenza grafica. Nel corso degli anni sono state rilasciate numerose versioni e DirectX 9 ha fornito una libreria utilizzabile con codice .NET gestito.
| Versione WPF | Anno di pubblicazione | .Versione Net | Versione di Visual Studio | Caratteristiche |
|---|---|---|---|---|
| 3.0 | 2006 | 3.0 | N/A | Versione iniziale. Tuttavia, lo sviluppo WPF puรฒ essere eseguito con VS 2005. |
| 3.5 | 2007 | 3.5 | CONTRO 2008 | Modifiche e miglioramenti in: Modello applicativo, binding, controlli, documenti, annotazioni ed elementi dell'interfaccia utente 3D. |
| 3.5 SP1 | 2008 | 3.5 SP1 | N/A | Supporto nativo per la schermata iniziale. Nuovo controllo del browser Web, supporto del pixel shader DirectX. |
| 4.0 | 2010 | 4.0 | CONTRO 2010 | Nuovi controlli: Calendario, Griglia dati, Selettore data. Supporto multi-touch e manipolazione. |
| 4.5 | 2012 | 4.5 | CONTRO 2012 | Avvio piรน rapido, prestazioni migliorate nella visualizzazione di grandi quantitร di dati. Nuovo controllo Ribbon e interfaccia INotifyDataErrorInfo per la convalida dei dati. |
| 4.5.1 | 2013 | 4.5.1 | CONTRO 2013 | Piccoli miglioramenti in termini di prestazioni e affidabilitร . |
| 4.5.2 | 2014 | 4.5.2 | NA | Nessun cambiamento importante |
| 4.6 | 2015 | 4.6 | CONTRO 2015 | Supporto finestra bambino trasparente Miglioramenti HDPI e touch |
| 4.8 | 2019 | 4.8 | CONTRO 2019 | Ultima versione principale di .NET Framework, con correzioni per schermi ad alta risoluzione e miglioramenti all'accessibilitร . |
| .NET Core 3.0 e versioni successive | 2019 presente | Da .NET Core 3.0 a .NET 10 | VS 2019 / 2022 | WPF diventa open source e viene distribuito con .NET moderno (le applicazioni rimangono Windows-soltanto). |
WPF non viene piรน rilasciato in versioni separate da .NET. Dal 2019, รจ incluso come componente open source della moderna piattaforma .NET e la versione attuale รจ inclusa in .NET 10, rilasciato a novembre 2025 come versione con supporto a lungo termine (LTS).
Caratteristiche di WPF
Il diagramma seguente raggruppa le principali funzionalitร di WPF, elencate in dettaglio di seguito.

- Documenti e Stampa
- Sicurezza, accessibilitร e localizzazione
- Offre interoperabilitร con Windows Controlli dei moduli
- Direct3D viene utilizzato nelle applicazioni grafiche in cui le prestazioni sono importanti
- Utilizza l'hardware della scheda video per il rendering
- La grafica vettoriale consente di scalare l'applicazione senza perdita di qualitร .
- WPF supporta un sistema di pixel logici a virgola mobile e colori ARGB a 32 bit.
- Ridefinire stili e modelli di controllo
- Creazione di caratteri internazionali da caratteri compositi
- Il rendering del testo WPF sfrutta la tecnologia ClearType.
- Consente di utilizzare la tecnica di caching del testo pre-renderizzato nella memoria video
- Approccio basato sulle risorse per ogni controllo
- I timer della presentazione sono inizializzati e gestiti da WPF
- ร supportata anche la relazione tra video e animazione
- In WPF, uno stile รจ un insieme di proprietร che devono essere applicate al contenuto utilizzato per il rendering visivo.
- I modelli in WPF ti aiutano a modificare l'interfaccia utente del tuo documento
- I comandi sono piรน assolutitrace versione debolmente accoppiata degli eventi
- Il supporto WPF per i comandi riduce la quantitร di codice che dobbiamo scrivere
Avanti in questo WPF Esercitazione su C#In questo corso, apprenderemo i tipi principali e l'infrastruttura di WPF.
Tipi e infrastrutture principali di WPF
Le classi in WPF sono divise in quattro diverse tipologie:
- Elemento UIE
- Elemento quadro
- ElementoContenuto
- ElementoContenutoFramework
Queste classi sono note come classi di elementi base. Forniscono le fondamenta per un modello di composizione delle interfacce utente.
Le interfacce utente WPF sono composte da elementi che vengono assemblati in una gerarchia ad albero chiamata albero degli elementi. L'albero degli elementi รจ un modo intuitivo per strutturare le interfacce utente ed รจ la struttura attraverso cui si ottengono potenti servizi di interfaccia utente.
XAML
L'Extensible Application Markup Language, noto anche come "XAML" (pronunciato "zammel"), รจ un linguaggio dichiarativo per definire le interfacce utente.
Ecco la definizione XAML di un semplice pulsante:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
Vantaggi dell'utilizzo del linguaggio XAML:
- XAML separa l'aspetto del front-end dalla logica del back-end.
- XAML รจ il metodo piรน semplice per rappresentare le interfacce utente
- XAML funziona efficacemente con gli strumenti di progettazione
Controls
Il framework WPF supporta molti controlli utili come:
- Controlli di modifica come TestoBox, Dai un'occhiataBox, Pulsante di opzione
- Controlli elenco come ListBox, Visualizzazione elenco, Visualizzazione albero
- Informazioni utente come etichetta, barra di avanzamento WPF, descrizione comando
- Azioni come Menu, Pulsante e Barra degli strumenti
- Aspetti come bordo, immagine WPF e Viewbox
- Finestre di dialogo comuni come OpenFileDialog e PrintDialog
- Contenitori come TabControl, ScrollBar e GroupBox
- Layout come DockPanel, StackPanel e Grid
- Navigazione come Frame e Collegamento ipertestuale
L'aspetto dei controlli puรฒ essere personalizzato con stili e modelli senza programmazione. Puoi anche creare un controllo personalizzato derivando una nuova classe da una classe base appropriata.
Forma
WPF fornisce una funzionalitร per personalizzare l'aspetto della tua applicazione. Ti consente di impostare oggetti e valori per cose come caratteri, sfondi, ecc.
La funzione Stili ti consente di standardizzare un aspetto specifico per l'intero prodotto. Ti consente di sostituire l'aspetto predefinito mantenendo il suo comportamento predefinito.
Un modello di dati consente di controllare la visualizzazione predefinita dei dati associati. Grazie ai temi, รจ possibile applicare facilmente gli stili visivi del sistema operativo.
Layout e pannelli
Il layout aiuta a posizionare e dimensionare correttamente i controlli. Fa parte del processo di composizione della presentazione per l'utente. Il framework WPF semplifica il processo di layout e offre una maggiore adattabilitร all'aspetto dell'interfaccia utente.
L'infrastruttura di layout รจ offerta da cinque classi principali: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid e 5) Canvas
Grafica
WPF offre un sistema grafico migliorato:
- WPF utilizza unitร indipendenti dal dispositivo, consentendo l'indipendenza dalla risoluzione e dal dispositivo. Ogni pixel indipendente dal dispositivo si ridimensiona automaticamente in base all'impostazione DPI (punti per pollice) del sistema.
- WPF utilizza double invece di float e supporta una gamma piรน ampia di colori
- Il motore grafico WPF รจ progettato in modo tale da poter sfruttare l'hardware grafico quando disponibile
Documenti e Stampa
Il framework WPF offre tre tipi di documenti:
- Documenti fissi: Questo tipo di documento supporta WYSIWPresentazione YG.
- Documenti di flusso: Consente di regolare e ridisporre il contenuto in base a variabili di runtime come la dimensione della finestra e la risoluzione del dispositivo.
- Documenti XPS: Una rappresentazione impaginata di un documento cartaceo in formato XML. XPS รจ un formato di documento aperto e standardizzato.
WPF consente un migliore controllo sul sistema di stampa, inclusa la stampa remota e le code di stampa. Inoltre, i documenti XPS possono essere stampati direttamente senza essere convertiti in un formato di stampa.
Ora che abbiamo esaminato gli elementi costitutivi, vediamo come questi pezzi si incastrano tra loro internamente.
WPF Architectura
WPF fa parte del framework .NET. Contiene sia codice gestito che non gestito. I componenti principali dell'architettura WPF sono illustrati nella figura seguente:
Componenti dell'architettura WPF
- Presentazione Quadro: Ti aiuta a creare elementi di primo livello come controlli, stili, layout, finestre, ecc.
- PresentazioneCoreContiene tipi base come UIElement e Visual, da cui derivano tutti i controlli e le forme presenti in PresentationFramework.dll.
- CLR: Rende produttivo il processo di sviluppo offrendo funzionalitร come gestione della memoria, gestione degli errori, ecc.
- Milcore: Milcore fa parte del codice non gestito che offre una stretta integrazione con DirectX.
- DirectX: Si tratta dell'API di basso livello che si occupa del rendering della grafica di WPF. DirectX interagisce con i driver e si occupa del rendering dei contenuti.
- Utente32: Si tratta di un'API fondamentale ampiamente utilizzata da molti programmi. Gestisce la memoria e la separazione dei processi. User32 ti aiuta a decidere quale elemento verrร posizionato dove sullo schermo.
- Kernel: L'input ha origine come segnale su un driver di dispositivo in modalitร kernel e viene instradato al processo corretto collegandosi con il Windows kernel e Utente32.
Associazione dati WPF
Il data binding รจ uno dei concetti piรน potenti di WPF. Invece di scrivere codice che copia manualmente i valori tra controlli e oggetti, si dichiara una connessione in XAML e WPF mantiene automaticamente sincronizzate entrambe le parti. Ad esempio:
<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />
WPF supporta quattro modalitร di binding:
- Senso Unico: Il controllo si aggiorna quando cambiano i dati di origine
- Bidirezionale: Le modifiche fluiscono in entrambe le direzioni tra controllo e fonte
- Una volta: Il controllo legge il valore sorgente una sola volta, al momento del caricamento.
- OneWayToSource: Il controllo invia il suo valore alla fonte, mai viceversa.
Il data binding รจ anche il motore del pattern MVVM (Model-View-ViewModel), l'architettura piรน comune per le applicazioni WPF professionali, perchรฉ permette alla vista di rimanere in XAML mentre la logica risiede in classi C# testabili.
Suggerimento: Implementa l'interfaccia INotifyPropertyChanged nelle tue classi di dati. Senza di essa, l'interfaccia utente non si aggiornerร quando i valori delle proprietร cambiano nel codice.
Installazione WPF
Per installare WPF, fare riferimento a questo link: https://www.guru99.com/download-install-visual-studio.html
Nella prossima fase di questo tutorial sulle applicazioni WPF, creeremo la nostra prima applicazione WPF.
Come creare la tua prima applicazione WPF?
In questo esempio WPF, svilupperemo un'applicazione WPF di base. Iniziamo quindi la semplice implementazione seguendo i passaggi indicati nell'esempio di applicazione WPF riportato di seguito.
Passo 1) In Visual Studio, vai su File > Nuovo > Progetto
Passo 2) Nella nuova finestra del progetto
- Seleziona l'app WPF
- Inserisci il nome come "MyWPF"
- fare clic su OK
Passo 3) Visual Studio crea due file per impostazione predefinita
- File XAML (MainWindow.xaml)
- File CS (MainWindow.xaml.cs)
Il MainWindow.xaml ha
- Una finestra di progettazione
- File XAML
Nella finestra XAML, i seguenti tag vengono scritti per impostazione predefinita:
La griglia รจ il primo elemento per impostazione predefinita.
Il file MainWindow.xaml.cs contiene il codice code-behind corrispondente al file di progettazione XAML:
Passo 4) Nella cassetta degli attrezzi,
- Trascina il testoBox elemento nella finestra di disegno
- Un testoBox apparirร nella finestra del disegno
- Vedrai il codice XAML per il testoBox aggiunto
Passo 5) Modifica il testo in โPrimo programma WPFโ.
Passo 6) Fai clic sul pulsante Start
Passo 7) Nell'output verrร visualizzata una finestra.
Congratulazioni! Hai progettato e creato la tua prima applicazione WPF. Successivamente in questo tutorial su WPF per principianti, vedremo la differenza tra WPF e WinForms.
WPF e WinForms
| WPF | WinForms |
|---|---|
| Si tratta di un framework piรน recente, quindi piรน in sintonia con gli standard attuali. | ร piรน vecchio, quindi รจ piรน provato e testato. |
| ร flessibile e ricco di funzionalitร . Permette di progettare applicazioni molto complesse senza dover scrivere codice o acquistare controlli. | Non cosรฌ ricco di funzionalitร |
| Sviluppatori di 3rd I controlli di gruppo sono focalizzati sulla compatibilitร con WPF, in quanto rappresenta il futuro. | Esistono molti controlli di terze parti che puoi acquistare o ottenere gratuitamente. |
| XAML consente di creare e modificare facilmente l'interfaccia utente grafica (GUI). Permette di suddividere il lavoro tra un progettista (XAML) e un programmatore (C#, VB.NET, ecc.). | In Windows Nei moduli, tutto il codice รจ scritto in un unico posto. |
| Le competenze XAML sono direttamente trasferibili a framework piรน recenti come WinUI 3, .NET MAUI e Avalonia UI. | Le competenze WinForms si applicano principalmente al classico Windows sviluppo desktop. |
| La suite di controllo in-box di WPF รจ limitata | I controlli in-box sono molto potenti |
Tipo di applicazioni create con WPF
- WPF viene utilizzato per applicazioni standalone Windows applicazioni desktop come strumenti aziendali, dashboard, terminali di trading e software di progettazione
- Windows I moduli e le pagine WPF possono coesistere nella stessa applicazione
- ร possibile sviluppare applicazioni in stile navigazione tra pagine/finestre.
WPF in .NET moderno
Microsoft WPF รจ stato reso open source nel dicembre 2018 e, a partire da .NET Core 3.0 (2019), il framework รจ stato incluso in ogni versione moderna di .NET, fino alla .NET 10. Il passaggio di un'applicazione a una versione moderna di .NET offre un avvio piรน rapido, una distribuzione piรน semplice grazie alla pubblicazione autonoma e l'accesso alle funzionalitร piรน recenti del linguaggio C#, mentre il modello di programmazione WPF rimane invariato.
WPF rimane Windows-solo. Se oggi stai scegliendo un framework per desktop, questo confronto puรฒ esserti utile:
| Contesto | migliori Per |
|---|---|
| WPF | Maturo, ricco di funzionalitร Windows applicazioni desktop con un vasto ecosistema |
| Interfaccia utente di Windows 3 | Nuove applicazioni destinate al moderno Windows 11 aspetto e sensazione |
| .NETMAUI | Applicazioni multipiattaforma che spaziano Windows, macOS, Androide iOS |
Poichรฉ WPF รจ attivamente mantenuto e profondamente integrato nel software aziendale, impararlo rimane un investimento pratico. Una volta acquisita familiaritร con la creazione di queste applicazioni, vale la pena esercitarsi con le piรน comuni Domande per il colloquio WPF per consolidare concetti come XAML, data binding e albero visivo.









