【问题标题】:Create a full screen GridView in XAML在 XAML 中创建全屏 GridView
【发布时间】:2012-07-03 23:07:44
【问题描述】:

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

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

通常你会有一个流畅的ItemTemplate 我需要确保整个屏幕是满的,所以有时 GridView 项目会很小(在平板电脑上运行时),有时它们会很大(在我的桌面上运行时) )。

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

【问题讨论】:

    标签: c# xaml windows-8


    【解决方案1】:

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

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

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

    【讨论】:

    • 烦人,我会四处寻找,看看能找到什么
    【解决方案2】:

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

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

    【讨论】:

    • 是的,这没关系,我可以做那部分,我想要确保 GridView 中的所有项目都填满页面但不超出页面,所以 ItemsTemplate 只是一个空网格现在必须具有需要根据屏幕分辨率更改的宽度和高度属性,这有意义吗?
    【解决方案3】:

    也许你可以使用Viewbox control

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多