/// <summary> /// Property changed handler for the AlignLastItems property. /// </summary> /// <param name="d">BalancedWrapPanel that changed.</param> /// <param name="e">Event arguments.</param> private static void OnAlignLastItemsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { BalancedWrapPanel source = (BalancedWrapPanel)d; // Only arrange is affected source.InvalidateArrange(); }
private static void OnItemHeightOrWidthPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { BalancedWrapPanel source = (BalancedWrapPanel)d; double value = (double)e.NewValue; // Ignore the change if requested if (source._ignorePropertyChange) { source._ignorePropertyChange = false; return; } // Validate the length (which must either be NaN or a positive, // finite number) if (!value.IsNaN() && ((value <= 0.0) || double.IsPositiveInfinity(value))) { // Reset the property to its original state before throwing source._ignorePropertyChange = true; source.SetValue(e.Property, (double)e.OldValue); string message = string.Format( CultureInfo.InvariantCulture, "Invalid length value '{0}'.", value); throw new ArgumentException(message, "value"); } // The length properties affect measuring. source.InvalidateMeasure(); }
private static void OnOrientationPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { BalancedWrapPanel source = (BalancedWrapPanel)d; Orientation value = (Orientation)e.NewValue; // Ignore the change if requested if (source._ignorePropertyChange) { source._ignorePropertyChange = false; return; } // Validate the Orientation if ((value != Orientation.Horizontal) && (value != Orientation.Vertical)) { // Reset the property to its original state before throwing source._ignorePropertyChange = true; source.SetValue(OrientationProperty, (Orientation)e.OldValue); string message = string.Format( CultureInfo.InvariantCulture, "Invalid Orientation value '{0}'.", value); throw new ArgumentException(message, "value"); } // Orientation affects measuring. source.InvalidateMeasure(); }