/// <summary> /// Command to toggle scrolling animation. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">Event arguments describing the event.</param> private static void OnToggleScrollingAnimationCommand(object sender, ExecutedRoutedEventArgs e) { ScaleScrollViewer scaleScrollViewer = sender as ScaleScrollViewer; if (scaleScrollViewer != null) { scaleScrollViewer.ToggleScrollingAnimation(); } }
private static void ScaleChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { ScaleScrollViewer ssv = (ScaleScrollViewer)sender; double scale = (double)args.NewValue; if (ssv.scaleTransform != null) { ssv.scaleTransform.ScaleX = scale; ssv.scaleTransform.ScaleY = scale; } }
public override void OnApplyTemplate() { base.OnApplyTemplate(); _friendBar = (FriendBarControl)Template.FindName("PART_FriendBar", this); Assert.IsNotNull(_friendBar); _friendBar.SetActiveItem(FacebookContact); _wallScrollViewer = (ScaleScrollViewer)Template.FindName("PART_WallScrollViewer", this); Assert.IsNotNull(_wallScrollViewer); // Focus the control so that we can grab keyboard events. this.Focus(); }
private static object CoerceScale(DependencyObject sender, object value) { ScaleScrollViewer ssv = (ScaleScrollViewer)sender; double scale = (double)value; if (scale > ssv.MaxScale) { scale = ssv.MaxScale; } if (scale < ssv.MinScale) { scale = ssv.MinScale; } return(scale); }
private static void OnFinalVerticalOffsetChanged(object sender, DependencyPropertyChangedEventArgs e) { double newValue = (double)e.NewValue; ScaleScrollViewer ssv = sender as ScaleScrollViewer; if (ssv.disableAnimation || !ssv.IsAnimationEnabled) { ssv.disableAnimation = false; ssv.BeginAnimation(ScaleScrollViewer.ActualVerticalOffsetProperty, null); ssv.ActualVerticalOffset = newValue; } else { DoubleAnimationUsingKeyFrames animation = new DoubleAnimationUsingKeyFrames(); animation.KeyFrames.Add(new SplineDoubleKeyFrame(newValue, s_animationDuration, s_animationSpline)); ssv.BeginAnimation(ScaleScrollViewer.ActualVerticalOffsetProperty, animation); } }
private static void OnActualVerticalOffsetChanged(object sender, DependencyPropertyChangedEventArgs e) { ScaleScrollViewer ssv = sender as ScaleScrollViewer; ssv.ScrollToVerticalOffset(ssv.ActualVerticalOffset); }
private static void MinMaxScaleChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { ScaleScrollViewer ssv = (ScaleScrollViewer)sender; ssv.CoerceValue(ScaleScrollViewer.ScaleProperty); }