I partially found a solution.
Unfortunately, this is not as simple as it should be.
For custom panels, it seems like we should manually reorder while listening for drag and drop events.
Here's an article about it: Drag and Drop GridView Extension
and here is a simplified code about it.
The reordering animation is added by manually changing the visual state:
private void OnDragOver(object sender, DragEventArgs e) { var item = (e.OriginalSource as FrameworkElement).DataContext as Note; if (item == null) return; e.Data.Properties["targetItem"] = item; var itemContainer = (sender as ItemsControl).ContainerFromItem(item) as Control; if (itemContainer == null) return; VisualStateManager.GoToState(itemContainer, "BottomReorderHint", true); }
But I still hope that there is an easier way to do this, given the fact that many panels implement it (StackPanel, ItemsWrapGrid, ...).
It's still not possible to get EntranceThemeTransition to work with a custom panel.
EDIT: to make EntranceThemeTransition work
source share