2012-08-23 81 views
1

我有一個ItemTemplate列表框的ItemTemplate擊中測試

<ListBox SelectionMode="Multiple" ItemsSource="{Binding MyItems}" DisplayMemberPath="Name"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid VerticalAlignment="Stretch" Height="{Binding ActualHeight, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"> 
       <ContentControl VerticalAlignment="Center" VerticalContentAlignment="Center" Content="{Binding}" /> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

這顯示一切都很好,但在ContentControl中的命中測試是不正確的......如果我點擊上方或下方的列表框如下「實際」的內容(如果該項目有更多的高度ContentControl,那麼該項目沒有被選中。

如果我改變ControlControl VerticalAlignment拉伸,這解決了問題,所有點擊正確高亮項目...但那麼我的內容是在每個項目內頂部對齊...

如何獲取要正確選擇的項目?

回答

3

充分利用Grid命中測試例如

<Grid Background="Transparent" ...> 
+0

賓果....我已經嘗試設置IsHitTestVisible =「真」,但沒有工作...任何想法,爲什麼? – Jeff

+1

據我所知,這個屬性只是一個覆蓋,意思是說,如果你將它設置爲「false」並且存在「某些東西」,它將忽略某個東西,但是如果沒有開始的東西, (默認)不會做任何事情。通過創建背景,您可以創建「某件事」來進行命中測試。 –

相關問題