Windows 8 Metro风格的列表框

6
我正在构建一个WPF Metro风格的应用程序,但是对于起始页,我需要创建类似于Windows 8开始屏幕的列表框,它在Windows 7和.NetFramework 4.0中也可用。
我现在使用了Listbox和Wrappanel,但正如你所看到的那样,它不够清晰!
请帮助我填写空白单元格。
编辑:移动按钮位置。

有什么不清楚的吗?你希望我们如何帮助你? - Emond
空格是不需要的。 当我想添加更多大按钮时,布局会有更多空间。 - sma6871
6
以后不能再说“Metro”了 :) - joshcomley
所以你正在寻找一种方法,使得在调整磁贴时它们的行为类似于Windows 8启动界面? - 123 456 789 0
4个回答

4

我的应用程序运行良好,我不想改变它的基础。只需要复杂的布局来解决这个问题。 - sma6871
本文介绍如何进行复杂布局。您需要的是一些代码来自定义布局。 - Judah Gabriel Himango

2

另一篇由Tim Heuer(我认为是Metro上最好的开发人员之一)撰写的教程:http://visualstudiogallery.msdn.microsoft.com/da65cc08-c4bf-4824-b483-9c8f53fb063c - varholl
谢谢,伙计。那正是我需要的。 但我需要它在Windows 7和Visual Studio 2010(.Net Framework 4.0)中! - sma6871
但是你可以复制UI,没有太大的区别,可能有一些动画,但没有太难的东西,而且我认为第一个链接没有使用4.5中的任何内容...例如没有异步! - varholl

1

VariableSizeWrapGrid可以解决问题:

<GridView>
  <GridView.ItemsPanel>
    <ItemsPanelTemplate>
      <VariableSizeWrapGrid ItemHeight="100" ItemWidth="150"/>
    </ItemsPanelTemplate>
  </GridView.ItemsPanel>   
</GridView>

结果示例:

enter image description here


谢谢,但这需要 Windows 8 - sma6871
1
嗯,“我正在构建一个WPF Metro风格应用程序”让我感到困惑。也许你应该删除与WinRT相关的Microsoft Metro标签,并改为使用Windows 8标签? 对于你的问题,我认为在WPF中没有内置的方法来获取此功能。你必须自己创建控件。 - Nicolas Voron

0
使用WrapPanel进行布局,问题就解决了:
<ListBox>
  ...
  <ListBox.ItemsPanel>
    <ItemsPanelTemplate>
      <WrapPanel />
    </ItemsPanelTemplate>
  </ListBox.ItemsPanel>
</ListBox>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接