Я хочу сделать, когда я нажимаю на элемент GridView
, CommandBarFlyout
был закрыт, и элемент щелкнул.Я пытался присвоить значение OverlayInputPassThroughElement sender as FrameworkElement
.Но мне также нужно сделать два клика.
XAML:
<Page.Resources>
<CommandBarFlyout x:Name="CommandBarFlyout1"
Placement="RightEdgeAlignedTop">
<AppBarButton x:Name="EditButton1"
Label="Edit"
Icon="Edit"/>
<AppBarButton x:Name="DeleteButton1"
Label="Delete"
Icon="Delete"/>
</CommandBarFlyout>
</Page.Resources>
<Grid>
<GridView Padding="20">
<GridView.ItemTemplate>
<DataTemplate>
<Grid PointerEntered="Grid_PointerEntered"
PointerExited="Grid_PointerExited"
Tapped="Grid_Tapped">
<Border Height="200" Width="200">
<TextBlock Text="{Binding}"
FontSize="48" Foreground="Green"/>
</Border>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.Items>
<x:String>One</x:String>
<x:String>Two</x:String>
</GridView.Items>
</GridView>
</Grid>
CS:
private void Grid_PointerEntered(object sender, PointerRoutedEventArgs e)
{
FlyoutShowOptions myOption = new FlyoutShowOptions();
myOption.ShowMode = FlyoutShowMode.Transient;
myOption.Placement = FlyoutPlacementMode.RightEdgeAlignedTop;
CommandBarFlyout1.OverlayInputPassThroughElement = sender as FrameworkElement;
CommandBarFlyout1.ShowAt(sender as FrameworkElement, myOption);
}
private void Grid_PointerExited(object sender, PointerRoutedEventArgs e)
{
CommandBarFlyout1.OverlayInputPassThroughElement = null;
CommandBarFlyout1.Hide();
}
private void Grid_Tapped(object sender, TappedRoutedEventArgs e)
{
Debug.WriteLine("Grid Click!");
}
Или, может быть, вы можете сказать мне, как это сделать правильно