Luk*_*ett 66

我用这个:

this.ScreenWidth = System.Windows.Application.Current.Host.Content.ActualWidth;
this.ScreenHeight = System.Windows.Application.Current.Host.Content.ActualHeight;
Run Code Online (Sandbox Code Playgroud)

许多方法来应用程序.如果是XAML,则可以绑定到LayoutRoot的属性.

Height="{Binding ElementName=LayoutRoot,Path=ActualHeight}"
Run Code Online (Sandbox Code Playgroud)

  • 这是更好的答案.正如Quetzlcoatl指出的那样,接受的答案存在问题. (2认同)

And*_*ont 14

它看起来像Application.Current.RootVisual.RenderSize将为您提供该信息.

  • 如果您正在尝试这样做,请参阅下面的Luke Puplett的答案.RootVisual.RenderSize不太可能为您提供您想要的内容. (7认同)

que*_*atl 8

我不能下来/ upvote (实际上,现在我可以和我这样做),但我想指出"Luke Puplett"的回答包括Application.Current.Host.Content是正确的,而不是"AndréasSaudemont "是一个为RenderSize提供建议的人.

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

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

另一方面,如果只有应用程序正确启动,则Host.Content设置为某个电话帧,即正确的全屏大小并旋转到实际的屏幕位置.我猜它一开始就是启动闪屏(JPG文件中的空或静态)