TOC

This article has been localized into Catalan by the community.

Una aplicació WPF:

Treballant amb App.xaml

App.xaml és el punt de partida declaratiu de la vostra aplicació. El Visual Studio el crearà automàticament quan inicieu una nova aplicació de WPF, incloguen també el fitxer Code-behind App.xaml.cs. Aquests fitxers treballen com una Window, on els dos fitxers són classes parcials, que treballen junts per permetre-vos treballar tant en el llenguatge de marques (XAML) com en el Code-behind.

App.xaml és una extensió de la classe Application, que és una classe central a l'aplicació Windows WPF. El .NET anirà a buscar aquesta classe per començar les instruccions, a continuació, iniciarà la Window o la Page desitjades des d'allà. Aquest també és el lloc per subscriure's als esdeveniments importants de l'aplicació, excepcions no controlades, etc. Més sobre això més endavant.

Una de les funcions més utilitzades del fitxer App.xaml és definir recursos globals als quals es poden utilitzar i accedir des de tota l'aplicació, per exemple, estils globals. Això es parlarà en detall més endavant.

Estructura de App.xaml

Quan creem una nova aplicació, el fitxer App.xaml generat automàticament es veurà semblant al següent:

<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>

El primer que cal tenir en compte aquí és la propietat StartupUri. En realitat, és la part que indica la Window o la Page que s'inicia quan l'aplicació és executada. En aquest cas, MainWindow.xaml s'iniciarà, però si voleu utilitzar una altra finestra com a punt de partida, simplement podeu canviar-la.

En algunes situacions, voleu tenir més control sobre com i quan es mostra la primera finestra. En aquest cas, podeu eliminar la propietat i el valor de StartupUri i, a continuació, fer-ho tot des del Code-Behind. Això es demostrarà a continuació.

Estructura del App.xaml.cs

L'App.xaml.cs normalment tindrà aquest aspecte per a un nou projecte:

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

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

Veureu com aquesta classe amplia la classe Application, cosa que ens permet fer coses a nivell d’aplicació. Per exemple, podeu subscriure-us a l’esdeveniment Startup, on podeu crear manualment la finestra d’inici.

Aquí teniu un exemple:

<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>

Observeu com la StartupUri ha sigut substituida per una subscripció a l'esdeveniment Startup (la subscripció a esdeveniments mitjançant XAML s'explica en un altre capítol). Al Code-Behind, podeu utilitzar l'esdeveniment així:

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();
		}
	}
}

El més interessant d’aquest exemple, en comparació amb només utilitzar la propietat StartupUri, és que hem de manipular la finestra d’inici abans de mostrar-la. En aquest sentit, canviem el títol, que no és de gran utilitat, però també podeu subscriure-vos a esdeveniments o potser mostrar una pantalla de carrega. Quan tens tot el control, hi ha moltes possibilitats. Aprofundirem en alguns d’ells en els propers articles d’aquest 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!