Постучанное изображение внутри 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.

Другие вопросы по тегам