Bu Blogda Ara

Unordered List

Popular Posts

Gelişmiş İnternet Uygulamalarında

Dinamik Programlama


1. PROGRAMLAMA YETENEKLERİ 1.1. Dinamik XAML XAML kullanan XAML tabanlı uygulama geliştirme platformu uygulamalarında, sayfa tasarımında kullanacağımız Button, TextBox v.s. gibi kontrolleri, uygulama geliştirme editörü veya tasarım editöründe bulunan araç kutuları yardımıyla sayfaya kolayca ekleyip, özelliklerini değiştirebiliriz. Ya da xaml sayfası içerisine gerekli XAML kodlarını yazarak, sayfa tasarımını yapabiliriz. Aynı zamanda uygulamanın çalışması esnasında da, sayfa üzerindeki XAML tabanlı uygulama geliştirme platformu kontrollerinin özelliklerini değiştirmek veya yeni kontroller oluşturmak mümkündür. Bu şekilde, dinamik olarak kontrol oluşturma, özelliklerini değiştirme gibi işlemler, C# programlama dili kodları kullanılarak yapılmaktadır. 1.1.1. XAML Kontrolleri ve Programlama Dili Her hangi bir yöntemle xaml sayfası üzerine eklediğimiz ve isim verdiğimiz bir kontrole, C# kodları kullanarak ismi üzerinden erişebiliriz. Örnek: Sayfaya yerleştirilmiş ve “buton1” ismi verilmiş olan düğmenin, üzerindeki metni, genişliğini ve yüksekliğini değiştiren aşağıdaki program kodunu inceleyelim. public MainPage() { InitializeComponent(); buton1.Content = "TIKLA"; buton1.Width = 80; buton1.Height = 25; } ÖĞRENME FAALİYETİ–1 ARAŞTIRMA AMAÇ 3 Programlama dilinde gerekli kodları yazarak uygulamanın çalışması (runtime) sırasında sayfada yeni kontroller oluşmasını sağlayabiliriz. Yapılacak şey, new operatörüyle bir sınıftan nesne oluşturmak ve nesne özelliklerini atamaktır. Bir kontrol sınıfından yeni bir nesne oluşturmak ve bazı özelliklerini belirlemek için gerekli kod yazım kuralı, aşağıdaki gibidir. Sınıf_Adı yeni_nesne_adı = new Sınıf_Adı( ); yeni_nesne_adı.özellik_1 = değer_1; yeni_nesne_adı.özellik_2 = değer_2; . . yeni_nesne_adı.özellik_n = değer_n; Örnek: TextBox nesnesinin dinamik teknikte oluşturulması Aşağıda görülen kodlar, sayfa ilk açıldığı anda, “text1” isimli bir TextBox nesnesi oluşturmakta ve ayrıca genişlik ve yükseklik değerlerini belirlemektedir.  LayoutRoot.Children.Add(text1; satırında, oluşturduğumuz “text1” isimli TextBox kontrolünün, “LayoutRoot” ismindeki Grid kontrolünün içinde yer alması sağlanıyor. Eğer bunu yapmazsak oluşturduğumuz TextBox kontrolünü sayfa üzerinde göremeyiz. 1.1.2. XamlReader Sınıfı Kullanarak Kontrol Oluşturma Tasarımcının, tasarım editörü içerisinde yapmış olduğu tasarımı, C# koduna çevirmesi oldukça güç bir iştir. Bu durumda, yardımımıza XamlReader.Load() metodu yetişiyor. Bu metod, parametre değeri olarak aldığı string tipteki XAML kodundan XAML tabanlı uygulama geliştirme platformu nesneleri oluşturarak geri döndürüyor. XamlReader sınıfını kullanmak için programın baş kısmında “using System.Windows.Markup;” kodunu yazarak, sınıfın bulunduğu kütüphaneyi program koduna dâhil etmek gerekiyor.  Bu teknikte ilk olarak, üretilecek nesnenin XAML kodları oluşturularak aşağıdaki yöntemle string tipinde bir değişkene atanır. public MainPage() { InitializeComponent(); TextBox text1 = new TextBox(); text1.Width = 75; text1.Height = 30; LayoutRoot.Children.Add(text1); } 4 String xaml_kod = “…Nesneye ait xaml kodları…”;  İkinci olarak, string tipindeki değişken, XamlReader.Load() metoduna gönderilir. Gönderilen değişkendeki XAML koduna göre nesne üretilerek geri döndürülür. var nesne_adı = XamlReader.Load(String XAML_kodu);  Son olarak da, nesne üretildikten sonra LayoutRoot alanına eklenmesi gerekiyor. Bunu da aşağıdaki yöntemle yapıyoruz. LayoutRoot.Children.Add((UIElement)nesne_adı); Oluşturulan nesne, veri tipi olmayan bir değişkende tutulduğu için, önünde (UIElement) yazılarak tip dönüşümü sağlanır. Ve bu sayede, bir XAML tabanlı uygulama geliştirme platformu nesnesi haline gelir. Örnek: XamlReader.Load ( ) metoduyla, XAML kodlarının dinamik olarak çalıştırılması. Aşağıdaki program kodlarını inceleyelim. C# dilinde kullanılan “ karakteri ile XAML kodunda kullanılan “ karakterlerini ayırmak için XAML kodundaki “ karakterlerinin önüne \ karakteri yazılarak bu tırnaklar escape karakter hâline getirilmelidir (Content=\"TIKLA\" kodunda olduğu gibi). Aşağıdaki satırda, XAML kontrollerine ilişkin web bağlantı bilgisi, “adres” isimli string tipte bir değişkene atanıyor. string adres = "xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\""; public MainPage() { InitializeComponent(); string adres = "xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\""; string xamlkod = "

0 yorum


Blogger tarafından desteklenmektedir.

İletişim

Archives

Translate

Bu Blogda Ara

Sayfalar

Ordered List