如何在WPF中获取相对于Scrollviewer的项目偏移量?

时间:2012-04-01 18:17:27

标签: c# offset scrollviewer

我有多个项目的ListBox,我想获得相对于Scrollviewer的项目的偏移量。 我尝试使用TranslatePoint或TransformToAncestor方法,但它只适用于已经可见的项目。那么我如何获得列表末尾的项目的偏移量并且不可见?

1 个答案:

答案 0 :(得分:0)

我不认为这是可能的,因为您使用的是VirtualizingStackPanel的默认ItemsPanel。隐形物品没有附在视觉树上,它们从未被测量过,也从未被安排过,所以它们没有位置。

如果不要求虚拟化,则应将ItemsPanel更改为StackPanel。此面板将所有项目附加到可视树,TranslatePoint / TransfromToAncestor将正常工作。

<ListBox>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    ...
</ListBox>