private async void TabStrip_TabStripDrop(object sender, DragEventArgs e) { VerticalTabView.CanReorderTabs = true; if (!(sender is TabView tabStrip)) { return; } if (!e.DataView.Properties.TryGetValue(TabPathIdentifier, out object tabViewItemPathObj) || !(tabViewItemPathObj is string tabViewItemString)) { return; } var index = -1; for (int i = 0; i < tabStrip.TabItems.Count; i++) { var item = tabStrip.ContainerFromIndex(i) as TabViewItem; if (e.GetPosition(item).Y - item.ActualHeight < 0) { index = i; break; } } var tabViewItemArgs = TabItemArguments.Deserialize(tabViewItemString); ApplicationData.Current.LocalSettings.Values[TabDropHandledIdentifier] = true; await MainPage.AddNewTabByParam(tabViewItemArgs.InitialPageType, tabViewItemArgs.NavigationArg, index); }