ListViewItem UWP C#中的Tapped Image

时间:2016-06-04 09:25:56

标签: c# listview uwp windows-10-universal onitemclick

我有一个listView,每个listViewItem都有一个Image。 我有2个事件:ListClick上的ListView和图像上的Tapped。 默认情况下,isItemClickEnabled在listView中为false,当它为false时:点击Image事件有效,但不是ItemClick。当我将其设置为true时: 我尝试在ItemClick事件中设置e.OriginalSource,但它总是一个ListView,即使单击Image:ItemClick也可以,但不是点击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);
        }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用技巧来实现此目的。在图像顶部放置一个按钮以捕获单击 Tapped 事件。首先,您需要将图像和按钮包裹在网格中,然后将按钮的不透明度设置为" 0" 及其 VerticalAlignment Horizo​​ntalAligment "拉伸"

<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 设置为&#34; False&#34; ,如果您点击图片的任何位置,将触发 ItemClick 事件。