Search code examples
windows-phone-7windows-phone-8screen-resolution

How to get the Device Resolution in Wp7


I want to set some icons in my app according to device screen resolution like wxga or wvga. I saw in many links like App.Current.Host.Content.ScaleFactor or Application.Current.RootVisual.RenderSize. But I can only access App.Current.Host.Content.ActualWidth or Height. These always say as 480x800 even though I am running the app in wxga Device. How do i know the resolution correctly ?


Solution

  • Windows Phone 7 only supports one resolution(800*480). Are you asking about Windows Phone 8? Please a look at Multi-resolution apps for Windows Phone 8 . Here is the ResolutionHelper class you can use.

        public enum Resolutions { WVGA, WXGA, HD720p };
    
        public static class ResolutionHelper
        {
           private static bool IsWvga
           {
              get
              {
                 return App.Current.Host.Content.ScaleFactor == 100;
              }
           }
    
           private static bool IsWxga
           {
              get 
              { 
                 return App.Current.Host.Content.ScaleFactor == 160; 
              }
           }
    
           private static bool Is720p
           {
              get 
              { 
                 return App.Current.Host.Content.ScaleFactor == 150; 
              }
           }
    
           public static Resolutions CurrentResolution
           {
              get
              {
                 if (IsWvga) return Resolutions.WVGA;
                 else if (IsWxga) return Resolutions.WXGA;
                 else if (Is720p) return Resolutions.HD720p;
                 else throw new InvalidOperationException("Unknown resolution");
              }
           }
        }