WinRT-XAML中是否有WrapPanel控件(不是WrapGrid)?

21
一个 XAML StackPanel 将控件在单个方向上对齐。一个WrapPanel 类似,但是像 XAML TextBox 中的 TextWrapping="Wrap" 一样,当达到相应的高度或宽度时,控件会“换行”到下一列或行。

enter image description here

类似但不完全相同的是WrapGrid,它可以将内容包装在一个统一的网格中。虽然VariableSizedWrapGrid允许容器中有不同大小的项,但这两个WrapGrids都不能在ItemsControl之外使用。因此,它们被取消资格。
当开发人员在Visual Studio的本地XAML工具箱中查找时,并没有WrapPanelWPF开发人员有一个WrapPanel,所以他们可能正在寻找此常见工具来解决他们的问题。所以我必须问一下:
有人知道XAML-WinRT中是否有WrapPanel吗?(虚拟化呢?)

+1 我一直在寻找这个东西。手动设置网格视图中每个项目的行和列是很麻烦的。我认为可以通过重写ArrangeOveride来实现。我曾经尝试过一次,但失败了,之后就没有再看过它。MSDN上的ArrangeOverride: http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.frameworkelement.arrangeoverride.aspx - chue x
2个回答

9

在 WinRT XAML 工具包中有一个WrapPanel。它是从 Silverlight Toolkit 移植过来的。


2
只要我们明白答案是“不”,Filip,我会将其标记为正确答案。在WinRT中没有WrapPanel。但是有开源和第三方的WrapPanels。我的在这里:http://codepaste.net/8gr5go - Jerry Nixon
蒂姆也有一个。我认为它来自和我的相同的来源。 - Filip Skakun
是的,我的版本基于CodeProject上的某个版本。我给那个人发了电子邮件,问他是否可以使用它。据我所知,他的版本也是基于Toolkit的。网络上有很多剪贴板继承。 - Jerry Nixon
看起来很好并且能够工作,但是我对于许可证感到困惑。在项目页面上它表示采用 MIT 许可证发布,但是在 WrapGrid 代码的标头中提到了 Ms-PL 许可证,这似乎是一种“传染性”的开源许可证。那么,在商业、专有和闭源软件中,我可以使用它吗? - Sebastian Negraszus
WinRT XAML Toolkit 中的 WrapPanel 明显比 Jerry Nixon 使用的 CodeProject 更好。 - HappyNomad
显示剩余2条评论

0

1
Vishal,我不认为你的控件相对于WrapGrid有什么优势,因为据我所知,它假定元素大小是固定的(水平方向的宽度)。整个想法是允许可变元素宽度,这样你就可以动态地检查新元素是否适合并将其放置在下一行,如果不适合的话。 - cyanide

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