1
我有ListBox與多個項目,我想獲得相對於滾動查看器項目的偏移量。 我嘗試使用TranslatePoint或TransformToAncestor方法來做到這一點,但它僅適用於已經可見的項目。那麼,我如何才能得到列表末尾的項目的偏移量並且不可見?如何獲得項目相對於WPF中的滾動查看器的偏移量?
我有ListBox與多個項目,我想獲得相對於滾動查看器項目的偏移量。 我嘗試使用TranslatePoint或TransformToAncestor方法來做到這一點,但它僅適用於已經可見的項目。那麼,我如何才能得到列表末尾的項目的偏移量並且不可見?如何獲得項目相對於WPF中的滾動查看器的偏移量?
我不認爲這是可能的,因爲您使用的默認ItemsPanel是VirtualizingStackPanel。無形的物品並不附着在視覺樹上,它們從來沒有被測量過,也沒有安排過,所以它們沒有位置。
如果不需要虛擬化,則應該將ItemsPanel更改爲StackPanel。此面板將所有項目都附加到可視化樹中,並且TranslatePoint/TransfromToAncestor將正常工作。
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
...
</ListBox>