protected override Size ArrangeOverride(Size finalSize) { foreach (UIElement uiElement in (IEnumerable <UIElement>) this.Children.OfType <UIElement>().OrderBy <UIElement, int>(new Func <UIElement, int>(ArrangePanel.GetOrder))) { Rect finalRect = ArrangePanel.GetPosition((DependencyObject)uiElement); if (double.IsNaN(finalRect.Top)) { finalRect = ArrangePanel.GetDesiredPosition((DependencyObject)uiElement); } uiElement.Arrange(finalRect); } return(this._strategy.ResultSize); }
private void StopReordering() { if (this._draggingObject == null) { return; } this._draggingObject.ClearValue(Panel.ZIndexProperty); this.InvalidateMeasure(); ArrangePanel.AnimateToPosition((DependencyObject)this._draggingObject, ArrangePanel.GetDesiredPosition((DependencyObject)this._draggingObject)); this._draggingObject = (UIElement)null; Action reOrderedEvent = this.ReOrderedEvent; if (reOrderedEvent == null) { return; } reOrderedEvent(); }