TOC

This article has been localized into Italian by the community.

Un'applicazione WPF:

La finestra

Quando crei un'applicazione WPF, la prima cosa che incontrerai è la classe Window. Questa serve come radice di una finestra e mette a disposizione il bordo standard, la barra del titolo e i pulsanti per ingrandire, chiudere e ridurre ad icona la finestra. Una finestra WPF è una combinazione di un file XAML (.xaml), dove l'elemento Window è la radice, e un file CodeBehind (.cs). Se stai usando Visual Studio (Express) e crei una nuova applicazione WPF, verrà creata una finestra di default che assomiglierà a questa:

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

    </Grid>
</Window>

L'attributo :x:class informa il file XAML quale classe utilizzare, in questo caso Window1, che Visual Studio ha anche creato per te. La troverai nell'albero dei progetti in VS, come nodo figlio del file XAML. Normalmente assomiglia a questo:

using System;
using System.Windows;
using System.Windows.Controls;
//…more using statements

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
}

Come puoi vedere, la classe Window1 è definita come parziale, perchè viene combinata con il tuo file XAML in Runtime per darti la finestra completa. Questo è proprio quello che la chiamata a InitializeComponent() fa, ed è per questo che è necessario avere una finestra completamente funzionante ed in funzione

Se torniamo indietro al file XAML, potrai notare un paio di altri attributi interessanti nell'elemento Window, come il Titolo, che definisce il titolo della finestra(mostrato nella barra del titolo) così come la larghezza e l'altezza iniziali. Ci sono anche un paio di definizioni di namespace, di cui parleremo nei capitoli XAML

Noterai anche che Visual Studio ha creato un controllo Grid per noi all'interno della Window. Grid è uno dei pannelli di WPF, e sebbene possa essere utilizzato un pannello o controllo qualsiasi, poiché la Window può avere un SOLO controllo figlio, l'uso di un Panel, che a sua volta può contenere multipli controlli figlio, è solitamente una buona scelta. Più tardi in questo tutorial, daremo uno sguardo più ravvicinato ai diversi tipi di pannelli che puoi usare, siccome sono molto importanti in WPF.

Proprietà importanti della Window

La classe Window in WPF ha molti attributi interessanti che puoi impostare per controllare l'aspetto ed il comportamento della tua applicazione. Questa è una breve lista delle più interessanti:

Icon - Ti permette di definire l'icona della finestra, che solitamente è mostrata nell'angolo sinistro in alto, proprio prima del titolo della finestra

ResizeMode - Controlla se e come l'utente finale può ridimensionare la tua finestra. Di default è "CanResize", che permette all'utente di ridimensionare la finestra come ogni altra finestra, sia usando il pulsante "massimizza/minimizza" che trascinando uno dei bordi. "CanMinimize" permetterà all'utente di minimizzare la finestra, ma non di massimizzarla o trascinare i bordi per ingrandirla o rimpicciolirla. "NoResize" è il più restrittivo, dove i pulsanti massimizza e minimizza sono rimossi e la finestra non può essere trascinata per ingrandirla o rimpicciolirla.

ShowInTaskbar - Di default è "True", ma se la si imposta su "False", la finestra non sarà rappresentata nella barra delle applicazioni. Utile per finestre non primarie o per applicazioni che dovrebbero minimizzarsi nella tray

SizeToContent - Decide se la finestra deve ridimensionarsi per adattarsi automaticamente al suo contenuto. Di default è "Manual", che significa che la finestra non si ridimensiona automaticamente. Altre opzioni sono "Width", "Height" e "WidthAndHeight", e rispettivamente adattano automaticamente la dimensione della finestra orizzontalmente, verticalmente ed entrambe.

Topmost - Di default è "False", ma se impostata su "True", la tua finestra rimarrà sopra le altre a meno che non venga minimizzata. Utile solo per situazioni speciali.

WindowStartupLocation - Controlla la posizione iniziale della tua finestra. Di default è "Manual", che significa che la finestra sarà posizionata inizialmente in base alle proprietà "Top" e "Left" della tua finestra. Altre opzioni sono "CenterOwner", che posizionerà la finestra al centro della finestra proprietaria, e "CenterScreen", che posizionerà la finestra al centro dello schermo.

WindowState - Controlla lo stato iniziale della finestra. Può essere "Normal", "Maximized", o "Minimized". Di default è "Normal", che è quello che dovresti usare a meno che non vuoi che la finestra venga avviata massimizzata o minimizzata.

Ci sono molti altri attributi, quindi date un'occhiata voi stessi e poi passate al prossimo capitolo.