Novità di WPF versione 4
In questo argomento vengono fornite informazioni sulle funzionalità nuove e avanzate disponibili in Windows Presentation Foundation (WPF) versione 4.
In questo argomento sono incluse le sezioni seguenti:
Nuovi controlli
Gestore dello stato di visualizzazione
Tocco e modifica
Elementi grafici e animazioni
Text
Associazione
Applicazioni browser XAML
WPF e Windows
Progettazione WPF e Silverlight
Nuovi controlli
A WPF sono stati aggiunti tre nuovi controlli che rendono più facile la creazione di applicazioni aziendali. Questi controlli sono compatibili quasi al 100 per cento con le versioni di Silverlight, consentendo agli sviluppatori di riutilizzare il codice e di creare rapidamente versioni client e Web.
Gestore dello stato di visualizzazione
WPF offre un supporto migliorato per la modifica degli stati visivi in un oggetto ControlTemplate. Sono state aggiunte la classe VisualStateManager e le classi di supporto in modo che possano essere utilizzati strumenti quale Microsoft Expression Blend per definire l'aspetto di un controllo in base al relativo stato di visualizzazione. È ad esempio possibile definire l'aspetto di un controllo Button quando è nello stato Pressed. Per ulteriori informazioni sulla creazione di un oggetto ControlTemplate che utilizza VisualStateManager per un controllo esistente, vedere Personalizzazione dell'aspetto di un controllo esistente mediante la creazione di un oggetto ControlTemplate. Per informazioni sulla creazione di un nuovo controllo che utilizza VisualStateManager, vedere Creazione di un controllo dall'aspetto personalizzabile.
Nota |
---|
Gli elementi possono utilizzare VisualStateManager all'esterno di un oggetto ControlTemplate tramite il metodo GoToElementState. |
Tocco e modifica
Gli elementi di WPF accettano ora l'input tocco. Le classi UIElement, UIElement3D e ContentElement espongono gli eventi che si verificano quando un utente tocca un elemento su un touch screen. Oltre agli eventi tocco, UIElement supporta la modifica. Una modifica viene interpretata per ridimensionare, ruotare o convertire l'oggetto UIElement. Ad esempio, un'applicazione per la visualizzazione di foto potrebbe consentire agli utenti di spostare, ingrandire, ridimensionare e ruotare una foto toccando lo schermo del computer in corrispondenza della foto. Per ulteriori informazioni sul tocco, vedere Procedura dettagliata: creazione della prima applicazione a tocco e Cenni preliminari sull’input.
Elementi grafici e animazioni
Sono state apportate diverse modifiche correlate agli elementi grafici e alle animazioni.
Arrotondamento del layout
Quando il bordo di un oggetto cade in corrispondenza del centro del pixel di un dispositivo, il sistema grafico indipendente dai dpi può creare elementi di rendering, ad esempio bordi sfuocati o semitrasparenti. La gestione di questa situazione nelle versioni precedenti di WPF veniva realizzata tramite il blocco dei pixel. In Silverlight 2 è stato introdotto l'arrotondamento del layout, ovvero un'altra modalità di spostamento degli elementi che determina il posizionamento dei bordi in corrispondenza dei limiti di pixel interi. In WPF è ora supportato l'arrotondamento del layout con la proprietà collegata UseLayoutRounding su FrameworkElement.
Composizione memorizzata nella cache
Tramite le nuove classi BitmapCache e BitmapCacheBrush, è possibile memorizzare nella cache una parte complessa della struttura ad albero visuale come bitmap e migliorare notevolmente i tempi di rendering. La bitmap risponderà all'input dell'utente, ad esempio i clic del mouse, e sarà possibile disegnarla su altri elementi esattamente come con un qualsiasi pennello.
Supporto di Pixel Shader 3
WPF 4 si basa sul supporto di ShaderEffect introdotto in WPF 3.5 SP1, consentendo ora la scrittura di effetti per le applicazioni tramite Pixel Shader (PS) versione 3.0. Il modello di shader PS 3.0 è più avanzato rispetto a PS 2.0 e rende disponibile un maggior numero di effetti nell'hardware supportato.
Funzioni di interpolazione
È possibile migliorare la qualità delle animazioni utilizzando le funzioni di interpolazione che forniscono il controllo sul comportamento delle animazioni. È ad esempio possibile applicare un oggetto ElasticEase a un'animazione per conferire all'animazione un effetto molla. Per ulteriori informazioni, vedere i tipi di interpolazione nello spazio dei nomi System.Windows.Media.Animation.
Text
Sono state apportate diverse modifiche correlate al testo.
Nuovo stack per il rendering del testo
Lo stack per il rendering del testo di WPF è stato completamente modificato. Questa modifica ha determinato un miglioramento della configurabilità del rendering del testo, una maggiore chiarezza e il supporto delle lingue internazionali. Il nuovo stack di testo supporta ora la selezione in modo esplicito delle modalità di rendering con aliasing, di scale di grigio o ClearType. Lo stack di testo supporta ora il layout dei caratteri ottimizzato per la visualizzazione, in modo da produrre testo con una nitidezza paragonabile al testo Win32/GDI. Il nuovo stack di testo consente l'ottimizzazione delle funzionalità di hint e blocco del testo sia per il testo statico che animato. Il nuovo stack di testo supporta inoltre tipi di carattere con bitmap incorporate da sostituire ai tipi di carattere di dimensioni più piccole, consentendo il rendering di molti tipi di carattere dell'Asia orientale con una nitidezza paragonabile al testo Win32/GDI.
Selezione e personalizzazione del punto di inserimento
È possibile ora specificare il pennello per il disegno della selezione e del punto di inserimento per controlli di input e lettura, ad esempio TextBoxRichTextBox e FlowDocumentReader. Su TextBoxBase sono disponibili due nuove proprietà:
SelectionBrush che consente di creare un pennello per l'evidenziazione del testo selezionato.
CaretBrush che consente di modificare il pennello per il disegno del cursore.
Associazione
Sono stati apportati diversi miglioramenti e modifiche in relazione all'associazione.
Associazione a comandi su InputBinding.
È possibile associare la proprietà Command di una classe InputBinding a un'istanza definita nel codice. Le proprietà seguenti sono proprietà di dipendenza, in modo che possano essere destinazioni di associazioni:
Le classi InputBinding, MouseBinding e KeyBinding ricevono il contesto dati dall'oggetto FrameworkElement proprietario.
Associazione a oggetti dinamici
WPF supporta l'associazione dati a oggetti che implementano IDynamicMetaObjectProvider. Se ad esempio si crea un oggetto dinamico che eredita da DynamicObject nel codice, sarà possibile utilizzare un'estensione di markup per eseguire l'associazione all'oggetto in XAML. Per ulteriori informazioni, vedere Cenni preliminari sulle origini di associazione.
Sequenza di testo associabile
Run.Text è ora una proprietà di dipendenza. Il vantaggio principale è rappresentato dal fatto che ora supporta associazioni unidirezionali. Supporta inoltre altre funzionalità delle proprietà di dipendenza, ad esempio l'applicazione di stili e modelli.
Applicazioni browser XAML
In XAML browser applications (XBAPs) sono state introdotte due funzionalità.
Interoperabilità tra script HTML e XBAP
È ora possibile comunicare con la pagina Web contenente l'applicazione XBAP quando l'applicazione è ospitata in un frame HTML. L'applicazione XBAP può ottenere l'accesso completo al DOM HTML e gestire eventi DOM. Per ulteriori informazioni, vedere BrowserInteropHelper.HostScript.
Distribuzione di applicazioni XBAP con attendibilità totale
Se per l'applicazione XBAP è necessaria l'attendibilità totale, l'utente riceverà automaticamente la richiesta di elevazione di ClickOnce standard durante l'installazione dell'applicazione da Intranet o da uno dei siti attendibili del browser.
Per ulteriori informazioni su entrambe le funzionalità, vedere Panoramica delle applicazioni browser XAML di WPF.
WPF e Windows
La barra delle applicazioni di Windows 7 fornisce funzionalità avanzate che consentono di utilizzare il pulsante della barra delle applicazioni per comunicare lo stato a un utente ed esporre attività comuni. I nuovi tipi dello spazio dei nomi System.Windows.Shell forniscono i wrapper gestiti per le funzionalità della barra delle applicazioni di Windows 7 e gestiscono i dati passati alla shell di Windows. Il tipo JumpList consente ad esempio di utilizzare Jump List, mentre il tipo TaskbarItemInfo permette di lavorare con le anteprime della barra delle applicazioni.
Le finestre di dialogo di WPF in Windows 7 e Windows Vista supportano ora l'aspetto dello stile di Windows 7 e Windows Vista rendendo disponibili posizioni personalizzate. Per ulteriori informazioni, vedere la classe FileDialogCustomPlace.
Progettazione WPF e Silverlight
In Visual Studio 2010 sono stati apportati diversi miglioramenti alla finestra di progettazione, al fine di agevolare la creazione di applicazioni di WPF e Silverlight.
Supporto per Silverlight migliorato
In Visual Studio 2008 era possibile installare Silverlight Tools per creare applicazioni Silverlight in Visual Studio. Il supporto di progettazione per i progetti Silverlight era tuttavia limitato. In Visual Studio 2010 il supporto di progettazione è ora lo stesso sia per i progetti Silverlight che per i progetti WPF. Per i progetti Silverlight, ad esempio, è ora possibile utilizzare il mouse per selezionare e posizionare gli elementi nell'area di progettazione.
Supporto per più versioni di piattaforme
In Visual Studio 2008 le fasi di progettazione dei controlli potevano essere destinate soltanto alla versione più recente della piattaforma WPF. In Visual Studio 2010 questo supporto viene esteso a più piattaforme, includendo il supporto in fase di progettazione per WPF 3.5, WPF 4, Silverlight 3, Silverlight 4 e le versioni future delle piattaforme. Poiché la stessa API di estensibilità è valida per tutte queste piattaforme, gli autori della fase di progettazione dei controlli possono facilmente scrivere un'esperienza e condividerla attraverso i runtime di controllo per ciascuna piattaforma.
Associazione dati visiva
Il nuovo generatore di associazioni dati consente la costruzione e la modifica in modo visivo delle associazioni senza che sia necessario digitare codice XAML.
Layout automatico
I miglioramenti apportati al layout includono una finestra di progettazione Grid più intuitiva e un supporto più idoneo per il ridimensionamento automatico dei controlli utente.
Modifica delle proprietà migliorata
Tramite la finestra Proprietà, è ora possibile creare e modificare in modo visivo le risorse Brush.
Per ulteriori informazioni, vedere WPF Designer.