protected override void ClearContainerForItemOverride(DependencyObject element, object item) { if (ContainerCustomisations != null && ContainerCustomisations.ClearingContainerForItemOverride != null) { ContainerCustomisations.ClearingContainerForItemOverride(element, item); } base.ClearContainerForItemOverride(element, item); Dispatcher.BeginInvoke(new Action(() => { var dragablzItems = DragablzItems().ToList(); if (ItemsOrganiser == null) { return; } ItemsOrganiser.Organise(this, new Size(ItemsPresenterWidth, ItemsPresenterHeight), dragablzItems); var measure = ItemsOrganiser.Measure(this, new Size(ActualWidth, ActualHeight), dragablzItems); ItemsPresenterWidth = measure.Width; ItemsPresenterHeight = measure.Height; }), DispatcherPriority.Input); }