在CarouselView中单击图像

时间:2017-02-20 15:40:15

标签: c# forms image xamarin xamarin.forms

我有一个带有多个图像的CarouselView,我想得到点击或点击的内容。我尝试添加x:名称但我无法在GestureRecognizer中访问此属性。

这是我的xaml。我有4页,每页有2张图片。我会得到x:点击图像的名称或者我可以知道图像被点击的位置。

<Image Grid.Row="0" Aspect="Fill" Source="{Binding Image1}" x:Name="{Binding ImageName1}" >
            <Image.GestureRecognizers>
                  <TapGestureRecognizer
                          Tapped="ClickImage" />
            </Image.GestureRecognizers>
          </Image>
<Image Grid.Row="1" Aspect="Fill" Source="{Binding Image2}" x:Name="{Binding ImageName2}">
            <Image.GestureRecognizers>
              <TapGestureRecognizer
                      Tapped="ClickImage" />
            </Image.GestureRecognizers>
          </Image>

2 个答案:

答案 0 :(得分:0)

试试这个,看它是否有效:

在xaml中为图像添加classid:

 ClassId ="{Binding Image2}"

并像这样使用它。 imageString包含唯一的图像。

 async void ClickImage(object sender, EventArgs eventArgs)
 {
    Image image = (Image)sender;
    string imageString = image.ClassId;
    System.Diagnostics.Debug.WriteLine(imageString);

 }

答案 1 :(得分:0)

您可以为每个图像设置不同的点击手势处理程序,例如

<Image Grid.Row="0" Aspect="Fill" Source="{Binding Image1}" x:Name="{Binding ImageName1}" >
            <Image.GestureRecognizers>
                  <TapGestureRecognizer
                          Tapped="ClickImage1" />
            </Image.GestureRecognizers>
          </Image>
<Image Grid.Row="1" Aspect="Fill" Source="{Binding Image2}" x:Name="{Binding ImageName2}">
            <Image.GestureRecognizers>
              <TapGestureRecognizer
                      Tapped="ClickImage2" />
            </Image.GestureRecognizers>
          </Image>