2

我想为 Windows 8 中的 Metro Style 应用程序创建一个全屏 GridView 控件,该控件会增长并适应用户更改屏幕分辨率。

我正在尝试模仿 Windows 8 上的日历应用程序,当您在监视器之间交换 Metro 屏幕时,每个正方形(日期)的大小会发生变化,因此屏幕始终会被填满。

通常情况下,ItemTemplate我需要一种流体来确保整个屏幕已满,因此有时 GridView 项目会很小(在平板电脑上运行时),有时它们会很大(在我的桌面上运行时)。

我可以使用 XAML 来实现这一点,还是ItemTemplate在屏幕尺寸发生变化时必须通过更改 GridView 变得时髦?

4

3 回答 3

3

其他 xaml 框架中执行您想要的操作的控件称为 UniformGrid。它允许您指定行数或列数,然后将每个子项调整为适当的大小。

UniformGrid 目前没有出现在 WinRT xaml 堆栈中,但移植起来并不困难(我做过一次,但无法访问源代码)。您可以从Jeff Wilcox - Uniform Grid获得 Silverlight 版本的源代码。

对于日历样式的应用程序,您将有一个统一的行网格,然后每一行都有一个用于列的网格。

于 2012-07-04T05:32:16.400 回答
1

我认为您应该能够将 GridView 放在 Grid 中,这应该照顾灵活的布局。只要 Grid 是您分配给Windows.UI.Xaml.Window.Current属性的页面的根元素,并且 GridView 是 Grid 的唯一子元素,它就应该水平和垂直拉伸以填满屏幕。

要获得日历类型的外观,您可以将 GridView 放在 Grid 的第二行,并将标题等放在第一行。

于 2012-07-04T01:48:29.097 回答
0

也许您可以使用Viewbox 控件

于 2013-01-22T17:33:02.800 回答