我有多个项目的ListBox,我想获得相对于Scrollviewer的项目的偏移量。 我尝试使用TranslatePoint或TransformToAncestor方法,但它只适用于已经可见的项目。那么我如何获得列表末尾的项目的偏移量并且不可见?
答案 0 :(得分:0)
我不认为这是可能的,因为您使用的是VirtualizingStackPanel的默认ItemsPanel。隐形物品没有附在视觉树上,它们从未被测量过,也从未被安排过,所以它们没有位置。
如果不要求虚拟化,则应将ItemsPanel更改为StackPanel。此面板将所有项目附加到可视树,TranslatePoint / TransfromToAncestor将正常工作。
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
...
</ListBox>