TOC

This article has been localized into Italian by the community.

Un'applicazione WPF:

Lavorare con App.xaml

App.xaml e' il punto di inizio dichiarativo della tua applicazione. Visual Studio lo creera' automaticamente per te quando inizi una nuova applicazione WPF, includendo un file Code-behind chiamato App.xaml.cs. Essi funzionano in modo simile per una Window, dove i due files sono classi parziali, funzionando assieme in modo da permetterti di lavorare sia in markup (XMAL) che Code-behind.

App.xaml.cs estende la Application class, la quale e' la classe principale in un'applicazione WPF Windows. .NET ricorrera' a questa classe per le istruzioni iniziali e cosi' far partire la desiderata Window o Page da li'. Questo e' pure il luogo per sottoscrivere importanti eventi dell'applicazione, come inizio applicazione, eccezioni non trattate, eccetera. Piu' dettagli piu' in avanti.

Il file App.xaml viene utilizzato maggiormente per definire le risorse globali, le quali possono essere utilizzate e richiamate all'interno di tutta l'applicazione. Ne discuteremo nel dettaglio più avanti.

Struttura App.xaml

Quando si crea una nuova applicazione, il file App.xaml viene generato automaticamente e avrà una struttura come questa:

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

    </Application.Resources>
</Application>

La cosa più importante da notare è la proprietà StartupUri. Questa è in realtà la parte che indica quale Finestra o Pagina deve essere mostrata all'avvio dell'applicazione. In questo caso, verrà mostrata MainWindow.xaml, ma se si desidera utilizzare un'altra finestra come punto di partenza, è sufficiente modificarlo.

In alcune situazioni, si desidera un maggiore controllo su come e quando venga visualizzata la prima finestra. In tal caso, è possibile rimuovere la proprietà StartupUri ed il valore e quindi fare tutto da Codice . Questo concetto verrà dimostrato di seguito.

Struttura di App.xaml.cs

In un nuovo progetto, app.xaml.cs sarà di solito simile a questa:

using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

Vedrai come questa classe estende la classe Application, permettendoci di fare diverse cose a livello di applicazione. Ad esempio, è possibile collegarsi all'evento Startup, e creare manualmente la finestra iniziale.

Ecco un esempio:

<Application x:Class="WpfTutorialSamples.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
			 Startup="Application_Startup">
    <Application.Resources></Application.Resources>
</Application>

Nota come StartupUri è stato sostituito con una sottoscrizione all'evento Startup (la sottoscrizione agli eventi tramite XAML è spiegata in un altro capitolo). In Codice, puoi usare l'evento in questo modo:

using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

		private void Application_Startup(object sender, StartupEventArgs e)
		{
			// Create the startup window
			MainWindow wnd = new MainWindow();
			// Do stuff here, e.g. to the window
			wnd.Title = "Something else";
			// Show the window
			wnd.Show();
		}
	}
}

La cosa interessante in questo esempio, rispetto all'utilizzo della proprietà StartupUri, è che possiamo manipolare la finestra di avvio prima di mostrarla. In questo esempio gli cambiamo il titolo, il che non è terribilmente utile, ma potresti anche iscriverti agli eventi o magari mostrare una schermata iniziale. Quando hai tutto il controllo, ci sono molte possibilità. Analizzeremo più in dettaglio alcuni di questi nei prossimi articoli di questo tutorial.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!