Короткий ответ: нет, насколько я могу судить, вы не можете легко обнаружить повторный выбор / повторный выбор вкладки в UWP, по крайней мере, не углубившись в исходный код Xamarin.Forms, чтобы увидеть, как они реализовали uWPTabbedPageRenderer.
Вот как я это реализовал:
public class MainTabPageRenderer : TabbedPageRenderer
{
private Xamarin.Forms.Page _prevPage;
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
Control.Tapped += Control_Tapped;
_prevPage = Control.SelectedItem as Xamarin.Forms.Page;
}
private async void Control_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
{
var src = e.OriginalSource as TextBlock;
if (src != null
&& src.Name == "TabbedPageHeaderTextBlock"
&& Element is TabReselectDemo.MainPage)
{
var newPage = src.DataContext as Xamarin.Forms.Page;
if (newPage == _prevPage)
{
// do your thing here, a tab retap happened, like:
await newPage.Navigation.PopToRootAsync();
}
_prevPage = newPage;
}
}
}
TabbedPageHeaderTextBlock является частью внутренних компонентов средства визуализации UWP.Учитывая, что это не задокументировано, это не идеально, поскольку теоретически может измениться в будущей версии Xamarin.Forms, но некоторое время оно было стабильным.
Этого должно быть достаточно, чтобы решить это за вас,но подробнее здесь: https://criticalhittech.com/2017/09/25/tab-reselection-in-xamarin-forms-part-2/.