Постучанное изображение внутри ListViewItem UWP C#
У меня есть listView, который имеет изображение в каждом listViewItem. У меня есть 2 события: ItemClick на ListView и постучал по изображению. По умолчанию isItemClickEnabled имеет значение false в listView, когда оно имеет значение false: событие "Изображение" крана работает, но не ItemClick. Когда я установил для него значение true: я попытался установить e.OriginalSource в событии ItemClick, но это всегда ListView, даже когда щелчок по Image: ItemClick работает, но не по событию Tap.
Событие 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);
}
Что-то я делаю не так?
1 ответ
Вы можете использовать трюк для достижения этой цели. Поместите кнопку в верхней части вашего изображения, чтобы захватить событие Click или Tapped. Во-первых, вам нужно обернуть изображение и кнопку в сетку, а затем установить непрозрачность кнопки на "0", а ее VerticalAlignment и HorizontalAligment - "растянуть".
<Grid x:Name="ImageWrapper">
<Image
x:Name="Image" />
<Button
x:Name="ImageTapCaptureButton"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Opacity="0"
Tapped="Image_Tapped" />
</Grid>
Примечание: кнопка должна быть после Image в XAML, потому что она должна быть поверх Image.
При этом вам не нужно устанавливать IsItemClickEnabled на "False", и если вы щелкнете в любом месте вашего изображения, это вызовет событие ItemClick.