Üye Kayıt Üye Giriş

Silverlight'a Giriş ve Her Yönüyle XAML Yapısı


Silverlight'a Giriş ve Her Yönüyle XAML Yapısı

 

XAML

Extensible Application Markup Language ifadelerinin baş harflerinden oluşmaktadır. Türkçe'ye Genişletilebilir Uygulama İşaretleme Dili olarak çevirebiliriz. Benim için çok önemli olan bir detay daha ise XAML 'zamıl' şeklinde okunmaktadır. Lütfen! :)

XAML aslında XML yapıdaki bir dosyayı ifade eder. Silverlight projenizde ana sayfaya karşılık gelen MainPage.xaml dosyasını da irdeleyecek olursak XML'den başka bir şey olmadığını göreceksiniz.

Örnek olarak bir XAML dosyasını inceleyelim;


 

<UserControl x:Class="Exam2.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White"> <Button Margin="5"> <TextBox Name="Firstname" Text="Oğuzhan ABALI"/> </Button> </Grid> </UserControl>

Bir silverlight sayfası, <UserControl> imleri arasında ifade edilir. Ve aslında sayfanın görsel yüzünün XML biçiminde kodlanmış hali gibi de düşünebilinir. XAML bir programlama ya da script değildir arkadaşlar. Görevi sadece sayfa yerleşimini yönetmektir. Ayrıca XAML yapısı silverlight haricinde WPF(Windows Presantation Foundation) uygulamalarında da kullanılan bir yapıdır. XML tarzında saklanması, taşınması ve yönetilmesini daha da kolaylaştırır. Kodlar XAML'a bağlı cs ya da vb dosyası içine yazılırlar. Sonuç olarak XAML yine XML yapısını koruyacaktır.

XAML ifadesi içerisine yazdığınız her öğe aslında bir sınıfı simgeler. Örneğin <Buton> ifadesini yazdığınız da aslında:

 
System.Windows.Controls.Button

sınıfını ifade etmiş olursunuz. <UserControl> ifadesinin başında kullanılan x:Class ifadesi proje içindeki sınıfları XAML ile ilişkilendirmek için kullanılır.Bunların dışarısında yukarıda ki kodumuzu incelersek varsayılan olarak dört tane isim alanı, xmlns(XML Name Space) alanı <UserControl> düğümü içerisine ilave edilmiştir. Burada ki xmlns'ler XAML'in kullandığı referansları ifade eder. Öyle ki, XAML içinde yerleştirdiğimiz bir buton yada datagridin kullandığı isim alanı burada belirtilmelidir. Örneğin yukarıdaki kodumuzda Buton,TextBox ve Canvas gibi nesneler:

 
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation

isim alanında bulunurlar. Eğer bu isim alanını XAML'dan çıkarırsanız Visual Studio ve bir başka editör bu öğeleri tanıyamayacaktır.

XAML Kod Yapısı ile ilgili konuşacak olursak; XAML'de arkadaşlarım XML'deki gibi Ağaç Yapısı vardır. Ne demektir bu? Yani şöyle, bir çok element iç-içe yerleştirilip kullanılabilinir. Örnek olarak grid nesnesi içerisine bir buton onun da içerisine TextBox elementi ekleyebilirsiniz. Deneyecek olursak;

 
<Grid> <Button Margin="20"> <TextBox Text="Ben o button olacak nesnenin üzerindeki metin kutusuyum"></TextBox> </Button> </Grid>



Buton üzerine TextBox nesnemizi koyabildik. Burada dikkat etmemiz gereken ve kafalarda hep soru işareti bırakan nokta bir Windows veya ASP.NET uygulamasında her öğenin bir adı olmak zorundaydı yoksa IDE bize kızıveriyordu hemen, ama XAML yapısında her öğeye isim verme zorunluluğu yoktur arkadaşlar. Örnek olarak ben yukarıdaki örneğimizde button nesnesine isim vermedim. Eğer nesnenizi kod kısmında kullanacaksınız isim vererek çağırırsınız, yok kullanmayacaksanız da nesnenize isim vermeyebilirsiniz. Bu olay XAML'ın okunurluluğu fevkalade arttıran bir özelliktir. Bir diğer önemli özellik ise XAML'in ağaç yapısının temelinde XML olduğu için <(küçüktür), >(büyüktür) ve "(çifttırnak) karekterlerini doğrudan kullanmanıza izin vermeyecektir. Çünkü bu karakterler XML yapısı için anlam ifade eden özel karakterlerdir. Peki ne yapacağız? Çift tırnak yerine "&quot", küçüktür yerine "&lt" ve büyüktür yerine ise "&gt;" ifadelerini kullanıvereceğiz artık :) Örneğin; <Button Content="&lt;&quot;Oğuzhan&gt;" /> ifadesini verebiliriz.
 

Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER