Crea sito
RSS
 

WPF for Beginners – Parte 1

13 lug

Salve a tutti,
Questo è il primo di una serie di post dedicati ai principi fondamentali di Windows Presentation Foundation.

Introduzione a Windows Presentation Foundation

Windows Presentation Foundation (WPF) è un sistema di presentazione di ultima generazione per la compilazione di applicazioni client Windows in grado di offrire all’utente un’esperienza visiva sorprendente. Con WPF è possibile creare una vasta gamma di applicazioni autonome e ospitate da browser.
L’elemento principale di WPF è un motore di rendering vettoriale e indipendente dalla risoluzione compilato per sfruttare i vantaggi dei moderni componenti hardware grafici. Oltre a questo elemento principale, WPF offre un set completo di funzionalità di sviluppo applicazioni che includono Extensible Application Markup Language (XAML), controlli, associazione dati, layout, grafica 2-D e 3-D, animazione, stili, modelli, documenti, elementi multimediali, testo e tipografia. WPF è incluso in Microsoft .NET Framework, per consentire la compilazione di applicazioni che incorporano altri elementi della libreria di classi .NET Framework.

Programmare con WPF

WPF è un sottoinsieme di tipi di .NET Framework in gran parte contenuti nello spazio dei nomi System.Windows. Se in precedenza si sono già compilate applicazioni con .NET Framework utilizzando tecnologie gestite come ASP.NET e Windows Forms, si è già acquisita familiarità con le operazioni fondamentali di programmazione WPF. Sarà quindi possibile creare istanze di classi, impostare proprietà, chiamare metodi e gestire eventi, tutto con il linguaggio di programmazione .NET Framework preferito, ad esempio C# o Visual Basic.

Markup e code-behind

WPF offre miglioramenti di programmazione aggiuntivi per lo sviluppo di applicazioni client Windows. Uno dei miglioramenti più evidenti consiste nella possibilità di sviluppare un’applicazione utilizzando sia markup, sia code-behind, un’esperienza nota agli sviluppatori ASP.NET. In genere, si utilizza il markup Extensible Application Markup Language (XAML) per implementare l’aspetto di un’applicazione, mentre si utilizzano i linguaggi di programmazione gestiti (code-behind) per implementarne il comportamento. La separazione di aspetto e comportamento offre alcuni vantaggi:

  • I costi di sviluppo e gestione risultano ridotti poiché il markup specifico per l’aspetto non è associato strettamente a codice specifico per il comportamento.

  • Lo sviluppo è più efficiente perché i progettisti possono implementare l’aspetto di un’applicazione mentre, contemporaneamente, gli sviluppatori ne implementano il comportamento.

  • È possibile utilizzare vari strumenti di progettazione per implementare e condividere il markup XAML, per rispondere ai requisiti degli sviluppatori delle applicazioni.Microsoft Expression Blend offre funzionalità adatte ai progettisti, mentre Visual Studio 2005 è indirizzato agli sviluppatori.

  • Le operazioni di globalizzazione e localizzazione delle applicazioni WPF sono state notevolmente semplificate.

Markup

XAML è un linguaggio di markup basato su XML utilizzato per implementare l’aspetto di un’applicazione in modo dichiarativo. Viene in genere utilizzato per creare finestre, finestre di dialogo, pagine e controlli utente e per riempire questi elementi con controlli, forme e grafica.

Nell’esempio riportato di seguito viene utilizzato XAML per implementare l’aspetto di una finestra che contiene un solo pulsante.

   1: <Window

   2:     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

   3:     Title="Window with Button"

   4:     Width="250" Height="100">

   5:  

   6:   <!-- Add button to window -->

   7:   <Button Name="button">Click Me!</Button>

   8:  

   9: </Window>

In particolare, XAML definisce qui una finestra e un pulsante utilizzando gli elementi Window e Button, rispettivamente. Ogni elemento viene configurato con attributi, ad esempio l’attributo Window dell’elemento Title per specificare il testo della barra del titolo della finestra. In fase di esecuzione, WPF converte gli elementi e gli attributi definiti nel markup in istanze di classi WPF. Ad esempio, l’elemento Window viene convertito in un’istanza della classe Window la cui proprietà Title è il valore dell’attributo Title.

Nella figura seguente viene illustrata l’user interface (UI) definita da XAML nell’esempio precedente.

IC122589

Code-behind

Il comportamento principale di un’applicazione consiste nell’implementare la funzionalità che risponde alle interazioni dell’utente, inclusa la gestione di eventi (ad esempio la scelta di un menu, una barra degli strumenti o un pulsante) e la chiamata alla logica di business e alla logica di accesso ai dati in risposta a tali eventi. In WPF, questo comportamento viene in genere implementato in codice associato a markup. Questo tipo di codice è noto come code-behind. Nell’esempio riportato di seguito vengono riportati code-behind e markup aggiornato dell’esempio precedente.

XAML

   1: <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

   2:         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

   3:         x:Class="SDKSample.AWindow"

   4:         Title="Window with Button"

   5:         Width="250" Height="100">

   6:         <!-- Add button to window -->

   7:         <Button Name="button" Click="button_Click" >Click Me!</Button>

   8: </Window>

C#

   1: using System.Windows; // contains Window, RoutedEventArgs, MessageBox

   2:  

   3: namespace SDKSample

   4: {

   5:     publicpartialclass AWindow : Window

   6:     {

   7:         public AWindow()

   8:         {

   9:             // InitializeComponent call is required to merge the UI

  10:             // that is defined in markup with this class, including 

  11:             // setting properties and registering event handlers

  12:             InitializeComponent();

  13:         }

  14:  

  15:         void button_Click(object sender, RoutedEventArgs e)

  16:         {

  17:             // Show message box when button is clicked

  18:             MessageBox.Show("Hello, Windows Presentation Foundation!");

  19:         }

  20:     }

  21: }

Visual Basic

   1: Namespace SDKSample

   2:  

   3:     Partial Public Class AWindow

   4:         Inherits System.Windows.Window

   5:  

   6:         PublicSubNew()

   7:             ' InitializeComponent call is required to merge the UI

   8:             ' that is defined in markup with this class, including 

   9:             ' setting properties and registering event handlers

  10:             InitializeComponent()

  11:         End Sub

  12:  

  13:         Private Sub button_Click(ByVal sender AsObject, ByVal e As RoutedEventArgs)

  14:             ' Show message box when button is clicked

  15:             MessageBox.Show("Hello, Windows Presentation Foundation!")

  16:         End Sub

  17:     End Class

  18: End Namespace

per questo articolo e tutto

Alla Prossima!

 

Leon!

firma-blog