private void TabDrop(DropEventArgs e) { foreach (var item in tabs) { ListBoxItem myListBoxItem = (ListBoxItem)(TabsList.ItemContainerGenerator.ContainerFromItem(item)); ContentPresenter myContentPresenter = VisualHelper.FindVisualChild <ContentPresenter>(myListBoxItem); if (myContentPresenter.IsMouseOver) { var tabPosition = myContentPresenter.TransformToAncestor(FindMyWindow()) .Transform(new Point(0, 0)); var position = new Point(e.RelativeMousePosition.X - tabPosition.X, e.RelativeMousePosition.Y - tabPosition.Y); TabDropOnElement(item, position, e.Data as Model.UI.TabItem); return; } } TabDropOnEmptyArea(e.Data as Model.UI.TabItem); }