Screen | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar screen

Windows Phone 8 uygulaması için Splash Screen hazırlamak

12 December 2013 1 yorum

Eğer Windows Phone 7 için uygulama geliştirdiyseniz zaten Splash Screen sayfalarına aşinasınızdır. Genellikle uygulamanın logosunu içeren jpg formatında olan resim, uygulama açılırken ekrana gelir ve tamamen hafızaya yüklendiğinde otomatik olarak kaldırılırdı.

Performans’ta yapılan çok ciddi iyileştirmeler sayesinde Windows Phone 8 uygulamalarının Splash Screen ihtiyacı ortadan kalktı ve Windows Phone 7 proje şablonlarının bir parçası olan Splash Screen, Windows Phone 8 proje şablonlarından kaldırıldı.

Eğer projenizde Splash Screen ihtiyacınız varsa, Assets klasörüne SplashScreenImage.jpg isimli, 768 x 1280 boyutlarında bir resim eklemeniz yeterli.

Fakat uygulamanızın tüm ekran çözünürlüklerinde Splash Screen resmini doğru göstermesini istiyorsanız, 3 farklı boyutlarda resim daha eklemeniz gerekli.

  • 480 × 800 ekran çözünürlüğü için; SplashScreenImage.screen-WVGA.jpg
  • 768 × 1280 ekran çözünürlüğü için; SplashScreenImage.screen-WXGA.jpg
  • 720 × 1280 ekran çözünürlüğü için; SplashScreenImage.screen-720p.jpg

Eğer uygulamanız 1080p çözünürlükte bir cihazda açılıyorsa, 720p resmi kullanılacaktır.

Windows Phone 8 ekran çözünürlüğünü bulmak

06 June 2013 Yorum yapılmamış

Windows Phone 8, 3 farklı ekran çözünürlüğünü destekler; WVGA, WXGA, 720p


WVGA
480 x 800
15 : 9

WXGA
768 x 1280
15 : 9

720p
720 x 1280
16 : 9
Eğer programatik olarak ekran çözünürlüğünü bulmak istiyorsanız, App.Current.Host.Content altında tanımlı olan ScaleFactor özelliğini kullanmanız gerekiyor;

var cozunurluk = App.Current.Host.Content.ScaleFactor;

Yukarıdaki örnek kodda, cozunurluk değişkenine 100 (WVGA), 160 (WXGA) veya 150 (720p) değerlerinden biri atanacaktır.

Windows Phone uygulamasının Screen TimeOut özelliğini devre dışı bırakması

02 May 2013 1 yorum

Windows Phone kullanıcıları telefonlarının Screen TimeOut sürelerini kendileri belirleyebilirler;

Bu ayar sayesinde, telefonu belli bir süre kullanmadıklarında ekranın otomatik olarak kapanması sağlanır. Özellikle pil tüketimini azaltmak ve telefonu tek sarj ile daha uzun kullanabilmek için bu ayar sıklıkla 1-2 dakika seviyelerine getirilir.

Fakat video izlerken, kitap/haber okurken ekranın 1-2 dakikada bir kapanması kullanıcı tarafından hoş karşılanmayacaktır.

Windows Phone uygulamanızda ekranın kendini otomatik olarak kapatmasını engellemek için aşağıdaki kod parçasını kullanabiliriz;

Guide.IsScreenSaverEnabled = false;

XNA Framework içerisinde yeralan Guide sınıfının IsScreenSaverEnabled property’sine false değeri verdiğimizde ekran otomatik olarak kapanmayacaktır.

C# Programımızın Ekrandaki Yerini Hatırlaması

10 March 2010 2 yorum

C# ile yazdığınız uygulamanın her açılışta bir önceki kapatıldığı yerde açılmasını isteyebilirsiniz.

Aslında gayet basit olan bu işi yaparken düşünmemiz gereken bazı detaylar var. Mesela;

Ya uygulama kapatıldıktan sonra kullanıcı windows’un çözünürlüğünü değiştirdiyse?

Kullanıcı birden fazla monitör kullanıyorsa, ve uygulama kapatıldıktan sonra monitörlerin ayarlarını değiştirdiyse?

Hem bu noktaları gözönünde bulunduracak, hem de kolay şekilde programlanacak bir çözümü aşağıda kodladım;

Öncelikle formumuz kapatılırken, tam olarak bulunduğu noktayı bir yere kaydetsin. Bunu uygulamanın Settings penceresine iki tane özellik ekleyerek yapalım;

FormLocation ve FormSize

Formumuzun base class‘ı olan Form class‘ından gelen OnClosing virtual method’unu override edelim;

protected override void OnClosing(CancelEventArgs e)
{
	Properties.Settings.Default.FormLocation = this.Location;
	Properties.Settings.Default.FormSize = this.Size;
	Properties.Settings.Default.Save();

	base.OnClosing(e);
}

Uygulamamızın Settings penceresinden eklediğimiz property‘lere

Properties.Settings.Default

ile ulaşabiliriz.

Şimdi, form’umuzun base’den gelen OnLoad virtual method‘unu override edelim ve açıldığında eski yerine konumlanmasını sağlayalım;

protected override void OnLoad(EventArgs e)
{
	base.OnLoad(e);

	Point konum = Properties.Settings.Default.FormLocation;
	Size boyut = Properties.Settings.Default.FormSize;

	bool isOnScreen = false; /// Formun gözükür olup-olmadığını kontrol edelim
	foreach (Screen screen in Screen.AllScreens)
		if (screen.WorkingArea.Contains(konum))
			isOnScreen = true;

	if (!isOnScreen) ///Eğer formumuz görünür değilse, görünür yapalım
		this.SetDesktopLocation(Screen.PrimaryScreen.WorkingArea.Left, Screen.PrimaryScreen.WorkingArea.Top);

	if (boyut.Width < 10 || boyut.Height < 10) /// Formun boyutları çok küçükse, normal hale geri getirelim
		this.Size = new Size(300, 300);
}

Yukarıdaki kod parçalarını sizler de kendi uygulamalarınızda kullanabilirsiniz.