列表视图项 UWP C# 中的点击图像



我有一个列表视图,每个列表视图项中都有一个图像。我有 2 个事件:项目单击列表视图并点击图像。默认情况下,isItemClickEnabled 在列表视图中为 false,当它为 false 时:tap Image 事件有效,但 ItemClick 无效。当我将其设置为 true 时:我尝试在 ItemClick 事件中设置 e.OriginalSource,但即使单击图像,它也始终是一个列表视图: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",将其垂直对齐水平对齐设置为"拉伸"。

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

注意: 按钮应位于 XAML 中的"图像"之后,因为它需要位于"图像"的顶部。

这样,您不需要将IsItemClickEnabled设置为"False",如果您单击图像中的任何位置,它将触发ItemClick事件。

相关内容

  • 没有找到相关文章

最新更新