lunedì 18 luglio 2011

Create yuor first XAML application

Linguaggio: C#
Framework: 3.5
Visualstudio: 2008

Perché non sperimentare magari qualcosa di buono salta pure fuori, e così mi sono deciso a provare con un filo di scetticismo WPF.

L’acronimo è di Windows Presentation Foundation e senza concentrarci troppo sul concreto significato di ogni singola parola... il tutto sta per “abbiamo un modo per disegnare finestre web o windows in modo che siano scalabili o proporzionate indipendentemente da chi le sta mostrando”.
Ciò detto, mi sembra che l’idea in se e per se sia ottima sfruttabilissima, bellissima... ma non mi è parso di vedere tutta questa diffusione.

Sarà anche che in molti libri associano il WPF a vista ( a ragion veduta ... ) e di contro molti di noi leggendo quelle 5 lettere o chiudono il libro, o lo gettano molto lontano.
Vi anticipo che lo sto provando su W7.

Il tema quindi di questa sezione (WPF Tutorials) sara costituito da una serie di Esercizi guidati per chi è incuriosito dall’argomento, vorrebbe provare ma non sa a come muoversi.

Che cosa vi serve per seguirmi:
  1. Visual Studio 2008,
  2. Il framework 3.5,
  3. Qualche mega libero su disco da organizzare bene,
  4. Un po’ di tempo a lezione,
  5. SqlExpress o equivalente.


Struttura cartella Tutorials:
Root\WPF\Tutorials_###

Dove: Root potrebbe essere c:\ d:\
Dove: WPF è la cartella di raccolta
Dove: Tutorials_### è il tutorial che stiamo affrontando.

Ciò detto si parte.

Aprire Visual Studio e :
Scegliere nuova WPF Application.
Impostare come percorso quanto sopra.

Sorpresa... quello che otteniamo è un qualcosa che apparentemente sembra inguardabile.
Un quadrato al centro della finestra, con qualcosa di simile all’XML nel box del codice.

E dato che è normale e di rigore la prima cosa che faremo è il play... e naturalmente otteniamo una finestra vota, dal titolo Windows1 (sempre che non l’abbiate già rinominata).

Per scelta rinomino questa prima finestra in wpf_Main, già conscio del fatto che essendo la mia prima finestra non mi interesserà un gran che del suo destino, tuttavia è di interesse per il progetto quindi dobbiamo cambiare il file app.xaml


<Application x:Class="Tutorial_001.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="wpf_main.xaml">
<Application.Resources>

</Application.Resources>
</Application>


Analizziamo quindi lo XAML

<Window x:Class="Tutorial_001.wpf_Main"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="wpf_Main" Height="300" Width="300">
<Grid>

</Grid>
</Window>


In se e per se assomiglia all’XML a cui però è connesso il code Behind, e fin qui non ho ancora visto nulla di nuovo.
Una cosa che tuttavia stupisce parecchio è l’aspetto delle proprietà che sembrano completamente diverse rispetto a quelle di una classica windows applications.

A questo punto direttamente nel box del codice aggiungiamo la nostra prima label e il nostro primo bottone...


<Label Margin="10,10,0,0"
Name="lblTest"
Height="25"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="100">Tutorials 001</Label>
<Button Margin="10,50,0,0"
Name="btnTest"
Height="25"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="100">My Firts Action </Button>


(vi basterà fare il copia e incolla)

E quello che noterete e che la sintassi è molto molto simile all’html. A questo punto possiamo scegliere due vie lanciare la nostra prima applicazione WPF ( che non fa nulla ) o aggiungere il nostro primo EventHandler, ed io sceglierei tanto la seconda.

Doppio click sul bottone disegnato in finestra e in quello che per noi è il code Behind otteniamo:

private void btnTest_Click(object sender, RoutedEventArgs e)
{

}


Che non è un EventHandler comune, ma un Routed Event Handler ... di cui parleremo
più avanti.

E quindi per concludere la nostra prima lezione ( così base da farmi quasi impallidire ) aggiungiamo :

private void btnTest_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Ok .. andiamo verso la chiusura della prima lezione...");
}


Compiliamo e se tutto va come deve andare... abbiamo finito.

RIEPILOGO TUTORIAL 1

  1. Abbiamo realizzato una soluzione utilizzando un linguaggio simile all’HTML,
  2. Abbiamo notato che le proprietà e gli eventi sono differenti rispetto a windows e web form,
  3. Abbiamo notato che forse potrebbe non essere troppo noioso.

Nessun commento: