static void OnSpacingUpdated(object sender, SizeChangedEventArgs e) { var panel = sender as Panel; var value = GetSpacing(panel); var tf = GetTrimFirst(panel); var tl = GetTrimLast(panel); for (int i = 0, Count = panel.Children.Count; i < Count; i++) { var element = panel.Children[i] as FrameworkElement; if ((i == 0 && tf) || (i == (Count - 1) && tl)) { element.Margin = new Thickness(0); } else if (FrameworkElementExtensions.GetMargin(element) == null) { element.Margin = value; } } }
static void UpdateSpacing(Panel panel) { var spacing = GetSpacing(panel); var except = GetSpacingExcept(panel); var eFirst = except.HasFlag(SpacingExceptions.First); var eLast = except.HasFlag(SpacingExceptions.Last); for (int i = 0, Count = panel.Children.Count; i < Count; i++) { var j = panel.Children[i].As <FrameworkElement>(); if (FrameworkElementExtensions.GetMargin(j) == null) { j.Margin = (i == 0 && eFirst) || (i == (Count - 1) && eLast) ? new Thickness(0) : j.Margin = spacing; } } }