我有一个List Box,它将ItemsPanelTemplate实现为WrapPanel。我需要计算用于导航目的的行数
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Grid.IsSharedSizeScope="True" />
</ItemsPanelTemplate>
<ListBox.ItemsPanel>
<ListBox>
有没有直接的方式?。
答案 0 :(得分:6)
因为WrapPanel
是一个流量控制,你必须执行计算以确定适合自己的对象数量。
获取ActualHeight
的{{1}}属性,将其除以对象的WrapPanel
项(或ActualHeight
的{{1}}属性)你正在放置在面板中。这应该给你行数:
ItemHeight
或:
WrapPanel
如果您设置了任何边距,此计算将会关闭,但您应该能够将它们考虑在内。
(您可以对int numRows = (int)(WrapPanel.ActualHeight / Item.ActualHeight);
和int numRows = (int)(WrapPanel.ActualHeight / WrapPanel.ItemHeight);
执行相同操作以获取列数。