Adapting your app for 1080p screen, Nokia Create Mini Mission

As you all probably know, Windows Phone GDR3 supports 1080p resolutions and there are now phablets out there running it having impressive 6” screen size. For us developers and designers, there are two important aspects to this story:

  1. We know have devices with really large screen estate which means that we can now display more content than before. Stretching the content is not really the solution here.
  2. 1080p resolution means that assets such as backgrounds and other images, at least if you are not using vectorized images, need to increase in detail

To detect that your app is running on 1080p hardware, you need to check the scale factor (App.Current.Host.Content.ScaleFactor) for the screen which is 1.5 (same as for 720p devices) and not the expected 2.25. Then you can use the new DeviceExtendedProperties property “PhysicalScreenResolution” to check the actual screen size:

private static bool Is1080p
{
	get
	{
		if(_size.Width == 0)
		{
			try
			{
				_size = (Size)DeviceExtendedProperties.GetValue("PhysicalScreenResolution");
			}
			catch (Exception)
			{
				_size.Width = 0;
			}
		}
		return _size.Width == 1080;
	}
}

Once you detect that you are running on 1080p hardware, you can load different images, change global styles and much, much more. I will delve into details in my next post. For more information, check out the following links:

Also, don’t forget that Nokia Create competition is still going on and this month’s Mini Mission requires you to update your app to support big screen. Check it out on the official contest page.

Last updated by at .

  • Pingback: Windows Store App Developer Links – 2013-11-11 | Dan Rigby

  • http://www.pedrolamas.com/ Pedro Lamas

    Please use TryGetValue() instead of GetValue() and handling the exception: exceptions are always bad and make the code slower! ;)

    • http://www.tonicodes.net/blog/ Toni Petrina

      Thanks for the suggestion. I kinda copied this code straight out of the official documentation. But I’ll fix it anyway ;)