2016-06-04 11 views
2

У меня есть listView, у которого есть изображение в каждом listViewItem. У меня есть 2 события: ItemClick в ListView и Tapped на изображении. По умолчанию isItemClickEnabled является false в спискеView, когда он является ложным: событие «Кранное изображение» работает, но не ItemClick. Когда я установил его в true: Я попытался настроить e.OriginalSource в событии ItemClick, но он всегда является ListView, даже когда вы нажимаете на Image: ItemClick работает, но не на событие «Событие изображения».Tapped Image внутри ListViewItem UWP C#

ItemClick событие:

private void listView_ItemClick(object sender, ItemClickEventArgs e) 
     { 
      if (e.OriginalSource is Image) 
       (e.OriginalSource as Image).Tapped += image_Tapped; 
      else 
       Frame.Navigate(typeof(nextPage), e.ClickedItem as Prayer); 
     } 

Все, что я делаю неправильно?

+0

e.OriginalSource всегда будет ListView, когда вы также нажимаете на изображение. И коснитесь изображения не будет работать, когда itemclick включен. Пожалуйста, объясните сценарий, что я могу вам помочь – Archana

+0

Мне просто нужно щелкнуть по изображению и запустить событие Image_Tapped, и когда я нажму на любой другой элемент в ListViewItem, событие ItemClick (или SelectionChanged) ListView будет уволена. 2 разных события. Это возможно? – yalematta

+0

Почему у вас нет обработчика событий в самом изображении? Вы можете получить datacontext обработанного изображения, если вам это нужно. – AbsoluteSith

ответ

0

Вы можете использовать трюк для достижения этой цели. Поместите кнопку поверх вашего изображения для захвата Нажмите или Tapped событие. Во-первых, Вы должны обернуть изображения и кнопки в сетке, а затем установить Баттона Непрозрачность к «0» и его VerticalAlignment и HorizontalAligment к «Stretch» ​​.

<Grid x:Name="ImageWrapper"> 
    <Image 
    x:Name="Image" /> 
    <Button 
    x:Name="ImageTapCaptureButton" 
    HorizontalAlignment="Stretch" 
    VerticalAlignment="Stretch" 
    Opacity="0" 
    Tapped="Image_Tapped" /> 
</Grid> 

Примечание: Кнопка должна быть после того, как изображения в XAML, потому что он должен быть на вершине изображения.

При этом, вам не нужно устанавливать IsItemClickEnabled в «ложный» и если щелкнуть в любом из вашего изображения, это вызовет ItemClick события.

Смежные вопросы