[英]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);
}
我做错了什么吗?
您可以使用技巧来实现此目的。 在图像上方放置一个按钮以捕获Click或Tapped事件。 首先,您需要将Image和Button包装在一个网格中,然后将Button的不透明度设置为“ 0”并将其VerticalAlignment和HorizontalAligment设置为“ 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.