/// <summary> /// TargetSizeProperty property changed handler. /// </summary> /// <param name="d">ExpandableContentControl that changed its TargetSize.</param> /// <param name="e">Event arguments.</param> private static void OnTargetSizePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ExpandableContentControl source = (ExpandableContentControl)d; Size value = (Size)e.NewValue; // recalculate percentage based on this new targetsize. // for instance, percentage was at 1 and width was 100. Now width was changed to 200, this means // that the percentage needs to be set to 0.5 so that a reveal animation can be started again. #if SILVERLIGHT source.RecalculatePercentage(value); #else // We are essentially trying to re-evaluate the percentage property based on another property having changed, // which is exactly what the coerce functionality of dependency properties is for source.RecalculatePercentage(double.NaN); #endif }
/// <summary> /// TargetSizeProperty property changed handler. /// </summary> /// <param name="d">ExpandableContentControl that changed its TargetSize.</param> /// <param name="e">Event arguments.</param> private static void OnTargetSizePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ExpandableContentControl source = (ExpandableContentControl)d; Size value = (Size)e.NewValue; // recalculate percentage based on this new targetsize. // for instance, percentage was at 1 and width was 100. Now width was changed to 200, this means // that the percentage needs to be set to 0.5 so that a reveal animation can be started again. source.RecalculatePercentage(value); }