我有一个图像,点击时会显示一个删除按钮。我需要的是当图像有LostFocus时删除按钮消失。通常,比如说一个文本框,我只会使用以下内容。
tb.LostFocus += tbOnLostFocus;
private void tbOnLostFocus(object sender, RoutedEventArgs e)
{
delBtn.Visibility = Visibility.Collapsed;
}
我的问题是,相同的代码不会在图像上启动。我隐约记得不久前在某个地方读到LostFocus事件不会在图像上触发,因为它不是可聚焦元素。不确定我的记忆是否正确,因为我现在找不到它的参考资料。
是否有人找到了合适的解决方法或设法取得了类似的结果?
您可以通过使用MenuFlyout
来实现这一点。点击图像后,它将显示删除按钮。如果指针被点击除点击删除按钮以外的任何位置,它将被折叠
<Image Source="ms-appx:///Assets/1.jpg" Tapped="Image_Tapped">
<Image.Resources>
<MenuFlyout x:Name="DeleteMenuFlyout">
<MenuFlyout.Items>
<MenuFlyoutItem x:Name="delete" Click="Delete_Click" Text="Delete" />
</MenuFlyout.Items>
</MenuFlyout>
</Image.Resources>
</Image>
//C#
private void Image_Tapped(object sender,TappedRoutedEventArgs e)
{
DeleteMenuFlyout.ShowAt(sender as FrameworkElement);
}