2013-08-27 31 views
0

我想根据设备屏幕分辨率(如wxga或wvga)在我的应用中设置一些图标。我看到很多链接,如App.Current.Host.Content.ScaleFactor或Application.Current.RootVisual.RenderSize。但我只能访问App.Current.Host.Content.ActualWidth或Height。即使我正在wxga设备中运行应用程序,这些总是会说为480x800。我如何正确知道分辨率?如何获取Wp7中的设备分辨率

回答

1

Windows Phone 7只支持一种分辨率(800 * 480)。你在问Windows Phone 8吗?请看Multi-resolution apps for Windows Phone 8。这是您可以使用的ResolutionHelper类。

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"); 
      } 
     } 
    } 
+0

我使用相同的代码,但无法访问ScaleFactor。是的,我正在瞄准wp7.1。但该应用程序也将在wp8设备上运行。所以我相应地想设置一些图标 – Shilpa

+0

Windows Phone 7无法获得Windows Phone 8的解析度。它是WP8上运行你的应用程序的WP7模拟器。最好升级你的应用程序。 –

+0

如果我在wp8 Simulator中运行应用程序,为什么不更改分辨率? – Shilpa

1

你的目标你的应用为的Windows Phone 7.1,所以你应该点击你的项目的权利升级到Windows Phone 8.0

更新应用到目标 的Windows Phone 8.0操作系统
+0

是的,我的目标是WP7.1,但我使用WP8的APP运行。所以我需要知道设备分辨率 – Shilpa

+0

非常感谢。答案不能被标记为正确的2人 – Shilpa

+0

没问题兄弟,祝你好运。 –