|
<< Torna alla parte 1
Grafica
WPF introduce gli sviluppatori di Windows alle nuove funzionalità grafiche che portano i seguenti vantaggi:
- Risoluzione e grafica indipendente dalla periferica. Il sistema di grafica del WPF utilizza misure indipendenti dalla periferica(device-indipendent) per attivare l’indipendenza dalla risoluzione e dalla periferica. Ciascun pixel device-independent, scala automaticamente in base ai punti per pollice impostati nel vostro sistema.
- Precisione migliorata. Il sistema di coordinate del WPF utilizza i double anziché i float. Anche i valori di trasformazione e di opacità sono espressi usando i double. Inoltre, WPF supporta una elevata gamma di colori (scRGB) e fornisce un supporto integrato per gestire gli inputs da diversi spazi di colore.
- Grafica avanzata e supporto all animazione. WPF semplifica la programmazione grafica gestendo per voi la grafica scenografica; non ci saranno più problemi riguardanti l’elaborazione dello sfondo, i cicli di rendering e l’interpolazione bilineare. WPF fornisce un supporto per l’hit-testing, un sistema integrato di animazione e il supporto completo all’alpha compositing.
- Uso degli acceleratori Hardware. Il sistema di grafica di WPF è progettato per usufruire dell’hardware grafico limitando così l’uso della CPU.
Forme in 2-D
WPF fornisce una libreria di forme vettoriali a 2-D di uso comune , ad esempio rettangoli ed ellissi, come mostra la seguente illustrazione.

Queste forme intrinseche di WPF non sono soltanto forme: esse sono elementi programmabili che implementano molte delle caratteristiche che vi aspettereste dai normali controlli, compreso l’input da tastiera e mouse.
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Window1" >
<Ellipse Fill="LightBlue" MouseUp="ellipseButton_MouseUp" />
Window>
public partial class Window1 : Window
{
void ellipseButton_MouseUp(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Me, a simple ellipse, was mouse clicked!");
}
}
La seguente illustrazione mostra l’output del markup XAML e del code-behind precedente.

Per maggiori informazioni, vedi Panoramica delle Forme e del Disegno di Base in WPF . Per un esempio introduttivo, vedi Esempio d’uso degli Elementi Forma .
Geometrie in 2-D
Quando le figure in 2-D fornite da WPF sono insufficenti, potete utilizzare il supporto WPF per geometrie e percorsi (paths) e crearle voi stessi. L’illustrazione seguente mostra come potete utilizzare le geometrie per creare forme, come pennello da disegno, e ritagliare altri elementi WPF.

Per maggiori informazioni, vedi Panoramica della Geometria . Per un esempio introduttivo,vedi Esempio di Geometrie .
Effetti in 2-D
WPF fornisce una libreria di classi 2-D che potete utilizzare per creare molteplici effetti. La capacità di rendering in 2-D di WPF offre la possibilità di colorare gli elementi dell’UI con gradienti, immagini, disegni e video e di manipolarli usando la rotazione, la variazione di dimensione e la distorsione. L’illustrazione seguente propone un esempio dei numerosi effetti che potete ottenere usando i pennelli di WPF.

Per maggiori informazioni, vedi Panoramica dei Pennelli (Brushes) di WPF . Per un esempio introduttivo, vedi Esempio di Pennelli (Brushes) .
Rendering 3-D
WPF fornisce un’insieme di funzionalità di rendering in 3-D che, integrato con il supporto grafico in 2-D (di WPF), vi consente di creare layout più entusiasmanti, per le UI e la visualizzazione di dati. Ad un’estremità dello spettro, WPF vi da la possibilità di riprodurre le immagini in 2-D sulle superfici delle forme in 3-D. La seguente illustrazione ne da una dimostrazione.

Per maggiori informazioni, vedi Panoramica della Grafica in 3-D . Per un’esempio introduttivo, vedi Esempio di Solidi in 3-D .
Animazione
L’animazione può essere usata per generare controlli ed elementi che si ingrandiscono, si muovono, ruotano, spariscono. Per creare interessanti effetti di transizione fra pagine ed altro ancora. Poichè WPF vi permette di animare la maggioranza delle proprietà, non solo potrete animare moltissimi oggetti di WPF, ma lo potrete utilizzare anche per animare oggetti personalizzati da voi creati.

Per maggiori informazioni, vedi Panoramica dell’Animazione . Per un esempio introduttivo, vedi Galleria di Esempi di Animazione .
Media
Immagini, video e audio sono mezzi potenti per trasmettere informazioni ed esperienze degli utenti.
Images
Le immagini, che comprendono le icone, gli sfondi ed anche parti (pezzi, porzioni) di animazioni, costituiscono la parte fondamentale di moltissime applicazioni. Data la vostra frequente necessità di usare immagini, WPF espone la possibilità di utilizzarle in modi diversi. La seguente illustrazione mostra solo uno di questi modi.

Per maggiori informazioni, vedi Panoramica dell’Imaging . Per un’esempio introduttivo, vedi WPF Photo Viewer Demo .
Video e Audio
La funzione fondamentale delle capacità grafiche di WPF è di fornire supporto nativo al lavoro multimediale, che comprende video ed audio. Il seguente esempio mostra come inserire un media player all’interno di una applicazione.
<MediaElement Source="media\numbers.wmv" Width="450" Height="250" />
Il MediaElement ha la capacità di eseguire allo stesso tempo il video e l’audio ed è abbastanza estensibile per consentire la facile creazione di UIs personalizzate, come quella che è mostrata nell’immagine seguente.

Per maggiori informazioni, vedi Panoramica di, Animazione Grafica e Media in WPF . Per un’esempio introduttivo, vedi Galleria dei Media .
Documenti e Stampa
WPF contiene supporto nativo per operare con tre tipi di documenti: documenti fissi (fixed documents), documenti flottanti (flow documents) e documenti XPS. WPF, inoltre, fornisce un insieme completo di servizi per la creazione, il confezionamento, la visualizzazione, la gestione, la stampa e l’annotazione dei documenti. Molte di queste facoltà usufruiscono del supporto WPF di testo e tipografia.
Testo e tipografia
Gli elementi chiave in questa area (zona) comprendono il supporto per un array di funzionalità per i font OpenType e la capacità di incorporare facilmente i fonts nelle vostre applicazioni. WPF ha perfezionato la qualità e la performance del rendering del testo con nuovi aggiornamenti per il ClearType e l’accelerazione hardware. Potete facilmente integrare il testo con altri media e grafica, e potete anche animarlo. WPF, inoltre, fornisce un supporto ai font internazionali, comprendente un nuovo meccanismo di fallback dei font.
Per maggiori informazioni , vedi Tipografia in Windows Presentation Foundation . Per un’esempio introduttivo, vedi Esempio di Tipografia .
Documenti Flottanti (Flow Documents)
I documenti flottanti sono progettati per ottimizzare la visualizzazione e la leggibilità. Anziché essere impostati ad con un layout predefinito, i documenti flottanti si $adattano e adattano dinamicamente il loro contenuto in base a variabili di run-time, come ad esempio la dimensione di una finestra, la risoluzione di una periferica e le preferenze (opzioni) dell’utente.
Per maggiori informazioni, vedi Panoramica del Flow Dcument . Per un’esempio introduttivo, vedi Esempio delle Proprietà del FlowDocument .
Documenti Fissi (Fixed Documents)
I documenti fissi sono rivolti a quelle applicazioni che richiedono l’esatta presentazione di tipo “ciò che vedi è ciò che ottieni” [“what you see is what you get” :WYSIWYG].
Questi documenti effettuano il rendering del loro contenuto indipendentemente dal display o dall’hardware della stampante. I tipici usi dei documenti fissi comprendono il desktop publishing, l’elaborazione di testi (word processing), il layou delle Form (per la raccolta di dati), nei quali la fedeltà visuale alla forma originale della pagina è molto importante.
Come parte del suo layout, un documento fisso mantiene il preciso posizionamento degli elementi contenuti, indipendentemente dal display o dalla periferica di stampa in uso. Per esempio, una pagina di documento fisso che è visualizzata su un display a 96 dpi, appare esattamente la stessa quando verrà visualizzata su una stampante laser a 600 dpi, e lo stesso accadrà su una fotocompositrice a 4800 dpi. Il layout della pagina rimane lo stesso in tutti i casi, sebbene la qualità del documento aumenti a seconda delle potenzialità di ciascuna periferica.
Per maggiori informazioni, vedi Documenti in Windows Presentation Foundation .
Documenti XPS (XML Paper Specification)
WPF si basa sui documenti fissi per definire un nuovo tipo di documento, definito documento XML Paper Specification (XPS). L’XPS è la rappresentazione impaginata di un foglio di carta elettronico che viene descritto in un formato XML-based. XPS è un formato open, cross-platform che abilita gli utenti a generare, condividere, stampare e archiviare documenti impaginati.
La tecnologia XPS supporta numerosi utilizzi:
- Lettura, scrittura e memorizzazione di documenti, compreso contenuti e risorse, in un singolo file portabile, e facile da distribuire perché in formato ZIP.
- Rendering ad alta fedeltà - i documenti sono riprodotti al massimo della qualità della stampante o del display.
- Spooling diretto di stampa per Windows Vista.
- Routing dei documenti direttamente ad una stampante XPS compatibile.
- Semplice integrazione nelle applicazioni e visualizzazione con il controllo DocumentViewer.
L’applicazione XPS Viewer, che è mostrata nella seguente illustrazione, abilita l’utente alla visione, gestione e stampa dei files di documenti XPS.

Per operare con documenti XPS, WPF include API per i seguenti:
- Inserimento di Documenti XPS con le applicazioni tradizionali, il Web e l’hardware.
- Inserimento dei packages che si conformano alla Open Packaging Conventions, (OPC) con le applicazioni tradizionali e il Web.
- Generazione di Documenti XPS dalle applicazioni WPF.
Per maggiori informazioni vedi Documenti in Windows Presentation Foundation . Per un esempio introduttivo,vedi Esempio di Creazione di un Documento XPS .
Packaging
Il System.IO.Packaging delle API di WPF, consente alle vostre applicazioni di organizzare i files di dati, i contenuti e le risorse all’interno di un singolo ZIP file, portabile, di facile distribuzione e di facile accesso (single,portable,easy-to-distribute,easy-to-access). Le firme digitali possono essere incluse per autenticare gli elementi contenuti in un package e per verificare che gli elementi firmati non siano stati manomessi o modificati. Potete anche cifrare i pacchetti usando il rights management, allo scopo di limitare l’accesso a informazioni protette.
Per maggiori informazioni, vedi Documenti in Windows Presentation Foundation . Per gli esempi, vedi Esempi di Packaging .
Stampa
Il managed codice assicura anche un migliore controllo del sistema di stampa. I miglioramenti di stampa abilitano la stampa in tempo reale, via server di stampa remoto, e l’installazione di code. Inoltre, abilita il riscontro dinamico delle capacità della stampante e l’impostazione dinamica delle sue opzioni. In alcune circostanze, gli amministratori IT possono risolvere problemi del sistema di stampa senza bisogno di alzarsi dalla scrivania. Ad esempio, possono riavviare o cambiare priorità ad un lavoro di stampa bloccato in una coda di stampa trafficata.
In aggiunta, i documenti XPS hanno accresciuto le capacità di stampa. L’attuale percorso di stampa della Graphics Device Interface (GDI) di Microsoft Windows, normalmente rende necessaria la conversione di un documento in un formato compatibile con i processori di stampa, come ad esempio Enhanced Metafile (EMF) e, in seguito, richiede una seconda conversione nel linguaggio di descrizione pagina della stampante, come ad esempio Printer Control Language (PCL) o PostScript. Al fine di rendere i file di spool più piccoli e di ridurre il carico di rete per le stampanti collegate, l’XPS può essere stampato senza la conversione. Infatti l’XPS file format è, in parte, un linguaggio per i processori di stampa e un linguaggio di descrizione di pagina.
Per maggiori informazioni, vedi Panoramica della Stampa . Per un’esempio introduttivo, vedi Stampare un Documento XPS .
Annotazioni
Le annotazioni sono appunti o commenti che vengono aggiunti ai documenti per richiamare l’attenzione su informazioni o per evidenziare parti del documento interessanti o per futura consultazione. Scrivere appunti su documenti stampati è facilmente realizzabile, invece la capacità di aggiungere commenti personali su documenti online è generalmente limitata o non disponibile. WPF fornisce un infrastruttura per le annotazioni che supporta Sticky Notes (post-it) ed evidenziazioni. Questa infrastruttura può essere applicata ai documenti che sono ospitati (hosted) nel controllo DocumentViewer, come mostra la seguente illustrazione.

Per maggiori informazioni, vedi Panoramica delle Annotazioni . Per un’esempio introduttivo, vedi Esempio di Serializzazione di un Documento .
Applicazioni WPF
WPF da un ampio supporto per visualizzare ed interagire con i dati. Per fornire questa esperienza, WPF ha un gruppo specifico di classi che sono collettivamente note come Applcation Model (modello di applicazione). Esso fornisce il meccanismo per trasmettere contenuti agli utenti, e comprende la possibilità di definire e gestire le applicazioni. Ciò è consentito sia per le applicazioni stand-alone, costituite da finestre e finestre di dialogo, che per le applicazioni che girano su browser, costituite dalle pagine, dai collegamenti ipertestuali e frames; può essere altresì consentito per una combinazione di entrambe.
Infrastruttura delle applicazioni
Una varietà di infrastrutture per le applicazioni necessita di essere predisposta prima che un’applicazione possa essere considerata utile, ad esempio la visualizzazione di finestre o la navigazione di pagine. Come ogni applicazione di Windows, anche questa comprende la creazione di una funzione per un punto di accesso, l’attivazione di un ciclo di messaggi la creazione del thread principale per l’UI. In WPF, questa infrastruttura può essere creata in due fasi:
Generare un file .xaml con la seguente codifica XAML:
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" />
Configurare il file come un elemento per la Microsoft build engine (MSBuild) ApplicationDefinition.
Un’applicazione compilata solo con questo markup (come un’applicazione standard di Windows), verrà lanciata ed eseguita come una applicazione standard windows con una singola istanza della classe Application, che gestirà l’applicazione, la sua durata, l’accesso condiviso alle proprietà e risorse e una quantità di funzionalità per la gestione delle finestre e della navigazione.
Per maggiori informazioni, vedi Panoramica della Gestione dell’Applicazione .
Applicazioni Stand-alone (non connesse alla rete)
Come vi aspettereste, WPS fornisce una classe per creare e mostrare finestre e finestre di dialogo.
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WPFWindow"
Title="Hello, WPF Window!" Height="300" Width="300">
Window>
public partial class WPFWindow : System.Windows.Window
{
public WPFWindow()
{
InitializeComponent();
}
}
Per mostrare questa finestra, potete aggiornare la definizione dell’applicazione con il nome del file .xaml della finestra da aprire quando l’applicazione parte:
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
StartupUri="WPFWindow.xaml" />
Application non fornisce solo un facile mezzo per mostrare una finestra, ma è anche in grado di tener traccia di tutte le finestre, si ricorda qual è la finestra principale e la sua durata può essere configurata in base a quella delle sue finestre.
Per maggiori informazioni,vedi Panoramica delle Windows in Windows Presentation Foundation .
Navigazione
I modelli delle applicazioni, WPF e le tradizionali tecnologie di presentazione differisono nei modi attraverso i quali forniscono i supporti per la navigazione. Per cominciare, WPF fornisce gli elementi fondamentali per qualsiasi infrastruttura di navigazione: Page, Hyperlink, e Frame. Potete usare XAML per assemblare questi elementi a vostro piacere servendovi di una classica pagina HTML, nonostante la ricchezza di contenuti di WPF.
In seguito, potete ospitare questi fondamentali elementi di navigazione in Windows Internet Explorer 7, sia come pagine .xaml non connesse, che applicazioni compilare all’interno di particolari tipi di applicazioni definite come XAML browser applications (XBAPs). Queste applicazioni si eseguono direttamente da Windows Internet Explorer 7, come mostra la seguente illustrazione.

In aggiunta, gli stessi elementi di base per la navigazione possono essere introdotti all’interno di applicazioni non connesse alla rete. WPF implementa un particolare tipo di finestra, NavigationWindow, che può ospitare i contenuti delle pagine proprio come un browser. Inoltre potete includere il controllo a doppio uso Frame all’interno di una finestra o del contenuto di una pagina ospitata in un’applicazione stand-alone.
Con questi elementi e con altri ancora, potete creare molteplici esperienze utente con facilità, cosa che, in precedenza non era facile da realizzare, comprendendo procedure guidate (wizards) e applicazioni Web che verranno eseguite sul client.
Per maggiori informazioni, vedi Panoramica della Navigazione .
Sicurezza
Poiché probabilmente alcune delle vostre applicazioni WPF verranno eseguite da Internet Explorer 7, la sicurezza è fondamentale. Essenzialmente le applicazioni che girano su browser vengono eseguite in una sandbox di sicurezza, provvista del medesimo insieme di operazioni di accesso al computer dell’utente di una tipica applicazione Web. Numerose classi di WPF inoltre operano in sicurezza all’interno di questa security sandbox, la quale vi permette di costruire applicazioni che fanno quasi tutto ciò che possono farele applicazioni che hanno accesso completo al computer locale.
Per maggiori informazioni, vedi Sicurezza in Windows Presentation Foundation .
Argomenti correlati
- Accessibilità

- Panoramica di Automazione della UI

- Migrazione ed Interoperabilità

Ulteriori informazioni
- Get Started Using Windows Presentation Foundation

- Feedback della Community di Windows Presentation Foundation

© 2007 Microsoft Corporation
Trademark information is available at http://www.microsoft.com/library/toolbar/3.0/trademarks/en-us.mspx.
Traduzione a cura di Patrizia Cosolo, Revisione tecnica a cura di Sabrina Cosolo.
<< Torna alla parte 1
|