Добрый день, у меня есть пользовательское управление Popup, где пользователь взаимодействует с жестами. Я хочу, чтобы, когда пользователь нажимает на элемент изображения, вызывается метод и всплывающее окно закрывается. Но проблема, с которой я сталкиваюсь, заключается в том, что когда элемент изображения в usercontrol используется, все методы события нажатия в usercontrol запускаются. Я пробовал устанавливать разные gesturelistneners для каждого, но он, похоже, не работает. Вот мой код:Закрыть UserControl Popup с жестами Windows Phone
myPopUp = new Popup();
myPopUp.Height = 400;
myPopUp.Width = 400;
//myPopUp.VerticalOffset = 100;
myPopUp.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
myPopUp.VerticalAlignment = System.Windows.VerticalAlignment.Center;
layout_menu layouts = new layout_menu();
myPopUp.Child = layouts;
myPopUp.IsOpen = true;
GestureListener gesturelistener = GestureService.GetGestureListener(layouts);
gesturelistener.Tap += new EventHandler<GestureEventArgs>(onFirstImageTap);
GestureListener gesturelistener2 = GestureService.GetGestureListener(layouts);
gesturelistener2.Tap += new EventHandler<GestureEventArgs>(onSecondImageTap);
}
private void onFirstImageTap(object sender, GestureEventArgs e)
{
//LayoutPanel = 1;
MessageBox.Show("First image tapped");
myPopUp.IsOpen = false;
}
private void onSecondImageTap(object sender, GestureEventArgs e)
{
MessageBox.Show("Second image tapped");
myPopUp.IsOpen = false;
}
Layout_menu XAML:
<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}" Margin="0,0,10,0">
<Grid x:Name="first_image_layout" HorizontalAlignment="Left" Height="150" Margin="13,10,0,0" VerticalAlignment="Top" Width="143">
<Image HorizontalAlignment="Left" Height="99" Margin="18,33,0,0" VerticalAlignment="Top" Width="107" Source="/Assets/Images/Navigation_Pane.png">
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener Tap="onFirstImageTap"></toolkit:GestureListener>
</toolkit:GestureService.GestureListener>
</Image>
</Grid>
<Grid x:Name="second_image_layout" HorizontalAlignment="Left" Height="156" Margin="13,161,0,0" VerticalAlignment="Top" Width="143">
<Image HorizontalAlignment="Left" Height="99" Margin="18,33,0,0" VerticalAlignment="Top" Width="107" Source="/Assets/Images/Navigation_Pane.png">
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener Tap="onSecondImageTap"></toolkit:GestureListener>
</toolkit:GestureService.GestureListener>
</Image>
</Grid>
Как я закрыть всплывающее окно, когда одна часть изображения прослушивают? Решения высоко ценятся. Заранее спасибо.
что «макеты» (ребенок всплывающего окна) –
@ShawnKendrot да макетов является потомком всплывающего окна и просто UserControl, который я определен в xaml выше. Я отредактирую вопрос, я только заметил, что не определил его правильно – irobotxxx
@ShawnKendrot Я его отредактировал. Xaml выше для Layout_menu, который я определяю как дочерний элемент всплывающего окна. Не могли бы вы взглянуть на него. Много спасибо – irobotxxx