2017-02-20 2 views
0

У меня есть CarouselView с несколькими изображениями, и я хочу получить то, что было нажато или нажато. Я попытался добавить x: Name, но я не могу получить доступ к этому свойству в GestureRecognizer.Получить изображение в CarouselView

Это мой 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> 

ответ

0

Попробуйте это и посмотреть, если он работает:

Добавить ClassID к изображению в XAML:

ClassId ="{Binding Image2}" 

И использовать его как это. imageString содержит уникальное изображение.

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

} 
+0

Спасибо !! Это то, что я искал! – ivanbm

+0

Нет проблем! :) Рад, что смог помочь – Martman

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> 
Смежные вопросы