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

Bu makalemizde XAML yapısından bahsedeceğiz. Ve Silverlight'a şöyle bir giriş yapacağız.

Merhaba değerli arkadaşlar;

Bu makalemizde XAML yapısından bahsedeceğiz. Dilerseniz lafı fazla uzatmadan başlayalım.

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="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    mc:Ignorable="d"

    designHeight="300" designWidth="400">

      <Grid x:Name="LayoutRoot" Background="White">

        <Button Margin="5">

            <TextBox Name="Firstname" Text="Oğuzhan ABALI"/>

        </Button>

    </Grid>

</UserControl>



Bir silverlight sayfası, 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 ifadesini yazdığınız da aslında:


System.Windows.Controls.Button



sınıfını ifade etmiş olursunuz. 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ı 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 (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 ">" ifadelerini kullanıvereceğiz artık :) Örneğin; ifadesini verebiliriz.

Evet arkadaşlar, bu makalemizde XAML yapısından söz ettik.

Bir dahaki makalemizde görüşmek üzere.

Herkese iyi çalışmalar!
  • Etiketler;
Oğuzhan Abalı
Oğuzhan Abalı, Mehmet Akif Ersoy Üniversitesi Bilgisayar Programcılığı mezunu ve yaklaşık 4 senedir .Net programcısı olarak freelance ve ortak bir çok projede görev aldı. <p>Microsoft'un MCTS-MCPD ve MCT ünvanlarına sahip. <p>Kendince müzikle uğraşmayı seviyor. Ve bildiklerini paylaşmaktan hoşlanıyor.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git