我有一个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);
}
我做错了什么?
答案 0 :(得分:0)
您可以使用技巧来实现此目的。在图像顶部放置一个按钮以捕获单击或 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>
注意:按钮应位于XAML中的Image之后,因为它需要位于Image的顶部。
有了这个,您不需要将 IsItemClickEnabled 设置为&#34; False&#34; ,如果您点击图片的任何位置,将触发 ItemClick 事件。