Microsoft.Phone.Controls.WrapPanel.OnItemHeightOrWidthPropertyChanged C# (CSharp) Method

OnItemHeightOrWidthPropertyChanged() private method

private OnItemHeightOrWidthPropertyChanged ( DependencyObject d, DependencyPropertyChangedEventArgs e ) : void
d Windows.UI.Xaml.DependencyObject
e Windows.UI.Xaml.DependencyPropertyChangedEventArgs
return void
        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();
        }