Windows Presentation Foundation: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Botcrux (discussione | contributi)
m Bot: rimuovo righe in eccesso (vedi richiesta)
WPF reso open source
Riga 4:
 
WPF è basato su un sistema di [[grafica vettoriale]] che si appoggia alle [[DirectX]] per sfruttare l'accelerazione [[hardware]] delle moderne schede grafiche. WPF può essere impiegato per realizzare applicativi eseguibili anche all'interno del browser [[Microsoft Internet Explorer]] o di altri browser avanzati, purché sia presente il Framework. Il linguaggio usato per la creazione di una interfaccia utente in WPF è lo [[XAML]] (eXtensible Application Markup Language), basato su [[XML]].
 
Il 4 dicembre 2018, durante la conferenza Microsoft Connect(); 2018, l'azienda ha reso open source Windows Presentation Foundation, [[Windows Forms|Windows Form]] e WinUI (Windows UI XAML Library), caricando su GitHub il codice sorgente<ref>{{Cita web|url=https://www.hwupgrade.it/news/sistemi-operativi/microsoft-rende-windows-forms-winui-e-wpf-open-source_79525.html|titolo=Microsoft rende Windows Forms, WinUI e WPF open source|sito=Hardware Upgrade|lingua=it-IT|accesso=2018-12-05}}</ref>.
 
==Architettura==
Riga 20 ⟶ 22:
 
Tutte le applicazioni WPF sono composte da 2 thread: il thread per gestire la UI e l'altro thread detto render thread che in maniera nascosta gestisce le funzioni di rendering e repainting. Perciò rendering e repainting sono gestite da WPF stesso, senza intervento dello sviluppatore. Il thread per la UI ospita il Dispatcher (attraverso un'istanza dell'oggetto DispatcherObject), il quale mantiene una coda di operazioni che necessitano di essere eseguite sulla UI (come un albero fatto di oggetti Visual, detto albero visuale) ordinate per priorità. Gli eventi della UI, compreso il cambiamento di una proprietà che riguarda il layout, ed eventi causati dall'interazione dell'utente sono accodati nel dispatcher, il quale invoca i gestori degli eventi. Microsoft raccomanda che i gestori degli eventi aggiornino solo le proprietà per riflettere il nuovo contenuto come risposta; il nuovo contenuto sarà generato o recuperato dal render thread. Il render thread prende una copia dell'albero visuale e attraversa l'albero calcolando quali componenti saranno visibili e renderizzandoli come superfici Direct3D. Il render threads inoltre salva in una cache l'albero visuale, così devono essere comunicati solo i cambiamenti all'albero, e perciò soltanto i pixel cambiati risulteranno aggiornati. WPF supporta un modello di layout estendibile. Il layout è diviso in due fasi che svolgono le funzioni di misurare ed adattare. Nella fase di misura vengono ricorsivamente chiamati tutti gli elementi e viene determinato lo spazio che essi prendono. Nella fase di adattamento, gli elementi figli vengono ricorsivamente adattati nello spazio dei loro genitori, invocando l'algoritmo di layout del modulo in uso.
 
== Note ==
<references/>
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
{{cita web|https://github.com/dotnet/wpf|Repository su GitHub}}
 
 
{{portale|Microsoft}}