Windows 8 Hileleri #4 : Görünüm Moduna göre uygulama geliştirme

Windows 8 kullananlar iyi bilirler.Bir Windows 8 uygulamasını kenarda çalıştırırken ana ekranda farklı bir iş yapabilirler:

ekran

Uygulamaların köşelerde açılmasına İngilizce tabirle “Snapped View” demekteyiz.Siz de uygulamalarınızı geliştirirken,Snapped View desteği sağlamalısınız ki zaten Marketplace kurallarından biridir aynı zamanda.

Peki uygulamanın farklı görünümlere geçip geçmediğini nasıl anlarsınız?

Çok Kolay! Page_SizeChanged olayı sayesinde görünümleri yakalayabiliriz.

Örnek olarak projemize ayrıca bir sayfa eklediğimizi düşünelim.Amacımız görünümleri 2 farklı sayfaya bölerek; Tam Ekran görünümde varsayılan anasayfamız hangisiyse(MainPage) ve Snapped Görünümde’de farklı bir sayfanın(SnappedPage) görüntülenmesini sağlamaktır.

Ardından bir adet SnappedPage’e geri dönüş kodu ekleyelim ki Snapped görünümden vazgeçersek anasayfaya yönlenelim:

public void Getback()
{
  var rootFrame = new Frame();
     rootFrame.Navigate(typeof(MainPage));
Window.Current.Content = rootFrame;
Window.Current.Activate();
}
Ve son olarak MainPage.xaml’in en üst elementi olan Page’e girip Page_SizeChanged olayına bu günlük yazımızın hilesine ait kodları girin:

private void Page_SizeChanged_1(object sender, SizeChangedEventArgs e)
{

   ApplicationViewState myViewState = ApplicationView.Value;

if (myViewState == ApplicationViewState.Snapped)
 {
var rootFrame = new Frame();
   rootFrame.Navigate(typeof(SnappedPage));
Window.Current.Content = rootFrame;
Window.Current.Activate();
} 
}

Tabi benzer bir yapıyı SnappedPage’de de uygulamanız gerekebilir.Onun da kodu benzer şekilde olacaktır:

private void Page_SizeChanged_1(object sender, Windows.UI.Xaml.SizeChangedEventArgs e)
{
ApplicationViewState myViewState = ApplicationView.Value;

if (myViewState != ApplicationViewState.Snapped)
{
Getback();
}

}

Eğer tam ekran görünüm değişirse,SnappedPage’e yönlendirerek farklı bir sayfada görünüme yönelik ekran tasarlayacağımızı bildiriyoruz.Bu kodu kullanarak farklı görünümleri de destekleyecek uygulamaları geliştirebilirsiniz.

Bu aynı zamanda bir Marketplace kuralı olduğundan ötürü de bu yazıyı “Problem ve Çözümü” olarak kategorilemek  mümkündür.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s