private static void OnOrientationPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { WrapPanel source = ( WrapPanel )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, "Properties.Resources.WrapPanel_OnOrientationPropertyChanged_InvalidValue", value); throw new ArgumentException(message, "value"); } // Orientation affects measuring. source.InvalidateMeasure(); }
private static void OnItemHeightOrWidthPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { WrapPanel source = ( WrapPanel )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 (!double.IsNaN(value) && ((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, "Properties.Resources.WrapPanel_OnItemHeightOrWidthPropertyChanged_InvalidValue", value); throw new ArgumentException(message, "value"); } // The length properties affect measuring. source.InvalidateMeasure(); }