我有一个将其ItemsPanelTemplate实现为WrapPanel的列表框。为了进行导航,我需要计算行数。
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Grid.IsSharedSizeScope="True" />
</ItemsPanelTemplate>
<ListBox.ItemsPanel>
<ListBox>有没有直接的路?
发布于 2012-11-21 07:20:10
因为WrapPanel是一个流控制,所以您必须执行计算来确定有多少对象适合您自己。
获取WrapPanel的ActualHeight属性,将其除以要放置在面板中的对象的项目的ActualHeight (或WrapPanel的ItemHeight属性)。这应该会给出行数:
int numRows = (int)(WrapPanel.ActualHeight / Item.ActualHeight);或者:
int numRows = (int)(WrapPanel.ActualHeight / WrapPanel.ItemHeight);如果您设置了任何边距,则此计算将关闭,但您应该能够将它们考虑在内。
(您可以对ActualWidth和ItemWidth执行相同的操作,以获取列数)。
https://stackoverflow.com/questions/13483822
复制相似问题