TOC

This article has been localized into Turkish by the community.

Bir WPF Uygulaması:

App.xaml ile Çalışma

App.xaml uygulamanızın oluşturulduğunu bildiren başlangıç noktasıdır. Visual Studio, yeni bir WPF uygulamasını başlattığınızda App.xaml.cs adlı Code-behind dosyası ile beraber App.xaml dosyasını sizin için otomatik olarak oluşturacaktır. İki dosya da partial sınıfındandır, aynı anda biçimlendirme(XAML) ve Code-behind ile çalışmanızı sağlamak için beraber çalışırlar.

App.xaml.cs, bir WPF Windows uygulamasının merkezi sınıfından olan Application sınıfından extend edilir. .NET, talimatları başlatmak için bu sınıfa gidecektir ve ardından istediğiniz Window veya Page'i oradan başlatacaktır. Aynı zamanda burada uygulamanın başlatılması, işlenmemiş exceptionlar vb. önemli olaylar kontrol edilir. Bunları daha sonra inceleyeceğiz.

App.xaml dosyasının en yaygın kullanılan özelliklerinden biri, örneğin genel stiller gibi bir uygulamanın her tarafından kullanılabilecek ve erişilebilecek global kaynakları tanımlamaktır. Bu daha sonra detaylı olarak tartışılacaktır.

App.xaml yapısı

Yeni bir uygulama oluştururken, otomatik olarak oluşturulan App.xaml şunun gibi görünecektir:

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

Burada anlatılmak istenen ana düşünce StartupUri özelliği. Bu özellikte uygulama başlatıldığında görüntülenecek olan sayfa veya pencere seçilir. Burada ise MainWindow.xaml görüntülenecek. Eğer başlangıçta başka bir pencere görüntülemek isterseniz buradan değiştirebilirsiniz.

Bazı durumlarda, gösterilecek ilk pencerenin ne zaman ve nasıl gösterileceği üzerine daha çok kontrol isteyebilirsin. Bu durumda, StartupUri özelliğini (StartupUri property) ve değerini ("MainWindow.xaml") silebilirsin ve sonra bütün bu yapılacakları Code-Behind (App.xaml.cs) tarafında yapabilirsin. Bu yöntem aşağıda gösterilecektir.

App.xaml.cs yapısı

Yeni bir proje için App.xaml.cs genellikle bu şekilde gözükür:

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

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

App.cs sınıfının Application sınıfını nasıl extend (kalıtım yoluyla özelliklerini devralma) edildiğini ve bunun bize uygulama seviyesinde işlemler yapabilmemize izin verdiğini göreceksiniz. Örneğin, başlangıç pencerenizi manuel (elle) olarak ayarlayabileceğiniz Startup olayını (event) kullanabilirsiniz. (Application sınıfını extend ederek.)

İşte bir örnek:

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

StartupUri kısmının Startup event'ine nasıl bağlandığına dikkat edin (XAML kısmında event'leri bağlamak diğer bir başlıkta açıklandı). Code-Behind kısmında, event'ler şu şekilde kullanılabilir.

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

Bu örnekte havalı olan şey, sadece StartupUri property'sini kullanmaya kıyasla, başlangıç penceresini açılmadan önce değiştirebiliyor olmamız. Bununla pencerenin başlığını değiştirebiliriz, olağanüstü bir kullanım değil, ancak ayrıca event'leri bağlayabilirsiniz ya da belki de bir ön açılış (splash) ekranı gösterebilirsiniz. Bütün bu kontrollere sahip olduktan sonra bir sürü olasılık var. Bu serinin ileriki başlıklarında bazılarına daha derinden bakacağız.