【问题标题】:How to get screen size on Windows Phone 7 Series?如何在 Windows Phone 7 系列上获取屏幕尺寸?
【发布时间】:2011-02-05 12:09:01
【问题描述】:

【问题讨论】:

  • 你有这些手机吗?哇——我还不知道任何人都可以使用它们进行开发。
  • 不,只是模拟器 :(

标签: screen windows-phone-7 screen-size


【解决方案1】:

我用这个:

this.ScreenWidth = System.Windows.Application.Current.Host.Content.ActualWidth;
this.ScreenHeight = System.Windows.Application.Current.Host.Content.ActualHeight;

为应用换肤的多种方式。如果它用于 XAML,您可以绑定到 LayoutRoot 的属性。

Height="{Binding ElementName=LayoutRoot,Path=ActualHeight}"

【讨论】:

  • 这是更好的答案。正如 Quetzlcoatl 指出的那样,公认的答案有问题。
  • 这个答案更好。使用此方法,您还可以在构造函数中获取屏幕尺寸。使用接受的答案,我得到了一个空引用异常。
【解决方案2】:

看起来 Application.Current.RootVisual.RenderSize 会给你这些信息。

【讨论】:

  • 很容易知道,即使 Windows Phone 7 (480×800) 和 (320×480) 会有两种分辨率,但它们的纵横比并不完全相同,我我猜是这个问题的原因。
  • 如果您尝试这样做,请参阅下面 Luke Puplett 的回答。 RootVisual.RenderSize 不太可能完全满足您的需求。
【解决方案3】:

我还不能反对/反对(实际上,现在我可以并且我这样做了),但我想指出“Luke Puplett”的回答包括 Application.Current.Host.Content 是正确的,而不是建议 RenderSize 的“Andréas Saudemont”。

我将使用 MSDN 中的教程或示例应用程序中常用的名称。

我说 Host.Current 更合适,因为在应用程序的最开始,尤其是在 WP7 上(我不知道它在 PC 上的“常规”SL3/SL4 上如何) - 例如,在第一页的构造函数中 - RenderSize 属性尚未正确设置,因为正在构造应用程序的“RootVisual”并且尚未在“App.xaml.cs”中分配。至少在这一点上,RenderSize=Size{0,0}

另一方面,如果只有 App 正确启动,Host.Content 会设置为某个 phoneframe,即正确的全屏尺寸并旋转到实际屏幕位置。我猜一开始就是启动启动画面(JPG 文件中的空白或静态)

【讨论】:

    【解决方案4】:

    如果您想从 XNA 游戏中访问显示尺寸,请使用:

    graphics.GraphicsDevice.DisplayMode.Width
    

    graphics.GraphicsDevice.DisplayMode.Height
    

    其中 graphics 是当前游戏的 GraphicDeviceManager !

    【讨论】:

      【解决方案5】:

      整个屏幕:

      (App.Current.RootVisual as FrameworkElement).ActualHeight
      (App.Current.RootVisual as FrameworkElement).ActualWidth
      

      当前页面:

      如果您想知道可见大小(考虑 AppBar / SystemTray),那么只需在页面外询问即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-13
        相关资源
        最近更新 更多