繁体   English   中英

ListViewItem UWP C#中的点击图像

[英]Tapped Image inside a ListViewItem UWP C#

我有一个listView在每个listViewItem中都有一个Image。 我有2个事件:ListView上的ItemClick和Image上的Tapped。 默认情况下,如果isItemClickEnabled为false,则listView中的isItemClickEnabled为false:tap Image事件有效,但ItemClick无效。 当我将其设置为true时:我尝试在ItemClick事件中设置e.OriginalSource,但即使单击Image,它也始终是ListView:ItemClick起作用,但tap Image事件不起作用。

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);
        }

我做错了什么吗?

您可以使用技巧来实现此目的。 在图像上方放置一个按钮以捕获ClickTapped事件。 首先,您需要将Image和Button包装在一个网格中,然后将Button的不透明度设置为“ 0”并将其VerticalAlignmentHorizo​​ntalAligment设置“ Stretch”

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

注意 :在XAML中,按钮应该位于Image之后,因为它必须位于Image的顶部。

这样,您无需将IsItemClickEnabled设置为“ False”,并且如果您在Image之外的任何位置单击,它将触发ItemClick事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM