Uygulamaların içerik odaklı olduğunu düşündüğümüzde, menü ve komutlar gibi ihtiyaçları çözmek için başka bir öğeye ihtiyaç olduğunu söyleyebiliriz. AppBar bu iş için var. AppBar sayesinde menü ve sık kullanılan özellik ya da komutlara hızlı bir biçimde erişim sağlayabilirsiniz. Aşağıdaki ekran görüntüsünde Hava Durumu uygulaması içerisindeki AppBar nesnesinin açık durumdaki hali sunulmuştur.
Hava Durumu uygulaması içerisinde, ekranın hem alt, hem de üst kısmında AppBar kullanılmıştır. Internet Explorer’ın Windows Store sürümü de aynı şekilde bir kullanım sunar.
Biz de kendi uygulamalarımızda AppBar kullanırken, nesnemizi yerleştirmek istediğimiz bölgeler konusunda tercihte bulunabilir veya birden fazla bölgeyi aynı anda kullanabiliriz.
AppBar Kullanımı
AppBar
kullanımını bir örnek ile incelemek üzere, Blank
App (XAML) şablonunu kullanarak, Windows8AppBarKullanimi
isminde yeni bir Windows Store
projesi açalım.
Proje oluşturulduktan sonra MainPage.xaml dosyasını açalım ve sayfa üzerindeki yerleşim
kontrolümüz olan Grid’in içerisinde bir AppBar
kontrolü sürükleyip bırakalım.
Bu işlemin ardından sayfa üzerinde yer alan Grid’e ait
kodlar aşağıdaki gibi olacaktır.
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"><AppBar>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal"/>
<StackPanel Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal"/>
</Grid>
</AppBar>
</Grid>
AppBar’ın VerticalAlignment özelliği varsayılan
olarak Stretch değerini alacaktır ve
AppBar tüm ekranı kaplayacaktır. AppBar’ı uygulamanın alt (Bottom), üst (Top) ya da orta (Center)
kısmında göstermek istersek, VerticalAlignment
özelliğine uygun bir değer vererek bunu sağlayabiliriz. Uygulamanın alt kısmını
tercih edelim ve AppBar için yazılı
olan açılış etiketini aşağıdaki gibi değiştirelim.
<AppBar VerticalAlignment="Bottom">
Bunu yaptığımızda AppBar’ın
tasarım ekranındaki görünümü aşağıdaki gibi olacaktır.
Şimdi, AppBar
içerisine bir Button kontrolü
sürükleyip bırakalım ve Content
özelliğine Exit değerini, Width özelliğine de 120 değerini verelim. Bu işlemin
ardından XAML kodları aşağıdaki gibi
bir hal alır.
<AppBar VerticalAlignment="Bottom"> <Button Content="Exit"
HorizontalAlignment="Left" Width="120"/> </AppBar>
Tasarım ekranında ise sıradaki görsele benzer bir durum
görürüz.
Amacımız, butona tıklandığında ya da dokunulduğunda
uygulamadan çıkılmasını sağlamak olduğu için, butonun Click olayına uygun bir metot bağlayacağız. Bunun öncesinde butona btnExit adını verelim ve ardından Click olayını tanımlayalım. Bu
işlemlerin ardından butona ait XAML kodu aşağıdaki gibi olacaktır.
<Button x:Name="btnExit"
Content="Exit" HorizontalAlignment="Left" Width="120" Click="btnExit_Click"/>
Buradaki koda uygun bir şekilde .cs dosyasının içerisinde de
btnExit_Click isimli metodu, uygun
imzası ile yazarız veya otomatik olarak oluşturulmasını sağlarız.
private void btnExit_Click(object sender, RoutedEventArgs e) {
}
Bu metodun içerisinde uygulamadan çıkmamızı sağlayacak olan
aşağıdaki satırı yazmalıyız.
Application.Current.Exit();
Bu kod çalıştığında, aktif olan uygulama kapatılacaktır.
Uygulamanın ÇalıştırılmasıÖrneğimizi test etmek amacıyla çalıştıralım. Bu işlemi F5 kısayolu ile yapabileceğiniz gibi, arayüzdeki Local Machine seçeneğini de kullanabilirsiniz.
Herhangi bir tasarım yapmadığımız için uygulama çalıştığında boş siyah bir ekranla karşılaşacağız.
Tasarlamış olduğumuz menüyü görmek amacıyla ekranın herhangi bir yerinde farenin sağ tuşu kullanılabileceği gibi, dokunmatik ekranlarda ekranın alt kısmından içeriye doğru yapılacak bir parmak hareketi ile de AppBar görüntülenebilir.
Hatırlayacağınız gibi, Exit butonunun işlevselliğini de kodlamıştık. AppBar üzerinde yer alan Exit butonuna tıklayarak uygulamamızı kapatabiliriz.
İkinci AppBar’ın Tanımlanması
Uygulamamız içerisinde birden fazla AppBar nesnesine ihtiyaç duyduğumuzda, farklı lokasyonlarda iki AppBar nesnesini bir arada kullanmamız mümkündür. Uygulamamız içerisinde üst bölüme de bir AppBar nesnesi yerleştirmek üzere kod sayfamıza geri dönelim. Toolbox içerisinden, Grid üzerine bir AppBar daha sürükleyip bırakalım.
AppBar nesnemizin
VerticalAllignment özelliğini Top olarak ayarlayalım. Sonrasında AppBar içerisine bir StackPanel sürükleyip bırakalım ve StackPanel nesnemizin Orientation özelliğini Horizontal olarak belirleyelim. Ardından,
StackPanel içerisinde iki ayrı Button nesnesi tanımlayalım ve
özelliklerini, genişlik 140, yükseklik 60 olacak şekilde belirleyelim.
Butonlarımız için Content olarak da
B1 ve B2 değerlerini kullanalım. Bu işlemler sonrasında XAML sayfasındaki kodlar aşağıdaki gibi olmalıdır.
<AppBar VerticalAlignment="Top"> <StackPanel HorizontalAlignment="Left" Height="100" Width="1346"
Orientation="Horizontal"> <Button Content="B1" Width="140" Height="60"/> <Button Content="B2" Width="140" Height="60"/> </StackPanel> </AppBar>
Burada, butonları AppBar
üzerinde yatay olarak sıralayabilmek amacıyla StackPanel nesnesinden faydalandık. StackPanel yerine başka bir yerleşim kontrolü de tercih
edilebilirdi.Uygulamanın Tekrar Çalıştırılması
Şimdi, F5 kısayolu ya da Local Machine butonu ile uygulamamızı tekrar çalıştıralım ve AppBar nesnelerimizin ikisini de görebilmek amacıyla uygulama açıldıktan sonra ekranın herhangi bir yerinde farenin (mouse) sağ tuşunu kullanalım.
Üst kısımdaki AppBar için herhangi bir fonksiyonellik kodlamadık sadece görsel olarak bir tanımlama yaptık. Burada kullanmış olduğumuz butonların da işlevselliğini ihtiyaçlarınız doğrultusunda kodlayabilirsiniz.
AppBar Nesnesinin Fon Rengini Tanımlamak
Tasarımınız ile uyumlu olması için AppBar nesnesinin fon rengini tanımlamak isterseniz, Background özelliğine uygun değeri atayarak bu işlemi gerçekleştirebilirsiniz. AppBar nesnesinin açılış etiketini aşağıdaki gibi kodlayarak, fon renginin kırmızı olmasını sağlayabilmek mümkün.
<AppBar VerticalAlignment="Top" Background="Red">
Bu işlemin ardından, üst kısımda yer alan AppBar kırmızı olarak karşımıza
çıkacaktır.
AppBar’ın Programatik Olarak Kapatılması
B1 ve B2 isimli butonların uygulama ile ilgili bir
işlevsellik sağladıklarını düşünürsek butona tıklandıktan sonra, kullanıcı AppBar’ı kapatmak için ek olarak bir
hamle daha yapmak zorunda bırakılmamalıdır. AppBar’ın otomatik olarak kapatılması için AppBar nesnesinin IsOpen
özelliğine false değer atamak
yeterli olacaktır. Aynı şekilde, true değer atayarak, AppBar nesnesinin programatik olarak açılması da sağlanabilir. Bu
işlemlerin programatik olarak gerçekleştirilebilmesi için AppBar nesnesinin Name
özelliğinin önceden tanımlanması gerektiğini unutmamak gerekir.
Kullanıcı etkileşimi ile tüm AppBar nesneleri aynı anda açılır veya kapanırken, programatik
olarak bu nesneleri ayrı ayrı açmak ya da kapatmak mümkündür.
Hiç yorum yok:
Yorum Gönder