2012-04-01 42 views
1

我有ListBox與多個項目,我想獲得相對於滾動查看器項目的偏移量。 我嘗試使用TranslatePoint或TransformToAncestor方法來做到這一點,但它僅適用於已經可見的項目。那麼,我如何才能得到列表末尾的項目的偏移量並且不可見?如何獲得項目相對於WPF中的滾動查看器的偏移量?

回答

0

我不認爲這是可能的,因爲您使用的默認ItemsPanel是VirtualizingStackPanel。無形的物品並不附着在視覺樹上,它們從來沒有被測量過,也沒有安排過,所以它們沒有位置。

如果不需要虛擬化,則應該將ItemsPanel更改爲StackPanel。此面板將所有項目都附加到可視化樹中,並且TranslatePoint/TransfromToAncestor將正常工作。

<ListBox> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
    ... 
</ListBox> 
相關問題