Gridview 如何在WinRT应用程序中检测和处理非常不同的屏幕大小?

Gridview 如何在WinRT应用程序中检测和处理非常不同的屏幕大小?,gridview,windows-8,microsoft-metro,screen-resolution,Gridview,Windows 8,Microsoft Metro,Screen Resolution,我想知道最好的方法是检测(和处理)非常不同的屏幕大小 为什么我这么问:我有一个metro(Win8UI)风格的应用程序,带有GridView(和不同的项目),请参见模型。对于每一个类别,我都选择了我在第一页显示的几个类别。如果屏幕尺寸(分辨率)很小(例如在平板电脑上),我只希望每个类别显示3-4个项目。在大屏幕上,我可能会显示10个项目。否则会有很多未使用的、空的空间。(在detailpage上,这没有问题,因为我显示了所有项目,它会自动调整到更大的屏幕大小。) 这也是Steven Sinofs

我想知道最好的方法是检测(和处理)非常不同的屏幕大小

为什么我这么问:我有一个metro(Win8UI)风格的应用程序,带有GridView(和不同的项目),请参见模型。对于每一个类别,我都选择了我在第一页显示的几个类别。如果屏幕尺寸(分辨率)很小(例如在平板电脑上),我只希望每个类别显示3-4个项目。在大屏幕上,我可能会显示10个项目。否则会有很多未使用的、空的空间。(在detailpage上,这没有问题,因为我显示了所有项目,它会自动调整到更大的屏幕大小。)

这也是Steven Sinofsky(微软)在其著作中所写的意图

这是我的应用程序在小屏幕上的模型


谢谢你的提示

加载页面时,您可能只需检查页面中的
this.Frame.ActualWidth
this.Frame.ActualHeight
的值,即可计算出您希望显示的大致项目数。不过,要注意缩放——这可能会使您的计算稍微复杂一些,但不会过于复杂。因为您可能知道网格视图中元素的大小,所以您应该能够计算出在屏幕区域中合适的元素数量。然后,将适当数量的项绑定到viewmodel中,然后将其绑定到视图中