private void ZoomOut(StatisticsItemUserControl clickChart) { clickChart.IsZoomed = false; isChartZoomed = false; DoubleAnimation da = new DoubleAnimation(1, TimeSpan.FromMilliseconds(500).Duration()); this.ChartGridOverview.BeginAnimation(Grid.OpacityProperty, da); Grid placeholderGrid = this.ChartGridOverview.Children[lastZoomedIndex] as Grid; Point pt = placeholderGrid.PointToScreen(new Point(0, 0)); Point pt1 = MainGrid.PointFromScreen(pt); Point ptSize = placeholderGrid.PointToScreen(new Point(placeholderGrid.ActualWidth, placeholderGrid.ActualHeight)); Point ptSize1 = MainGrid.PointFromScreen(ptSize); ThicknessAnimation marginAnim = new ThicknessAnimation(); marginAnim.From = new Thickness(0); marginAnim.To = new Thickness(pt1.X, pt1.Y, MainGrid.ActualWidth - ptSize1.X, MainGrid.ActualHeight - ptSize1.Y); marginAnim.Duration = TimeSpan.FromMilliseconds(500).Duration(); marginAnim.EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut }; marginAnim.Completed += new EventHandler(marginAnim_Completed); clickChart.BeginAnimation(Grid.MarginProperty, marginAnim); }
private void ZoomIn(StatisticsItemUserControl clickChart) { clickChart.IsZoomed = true; isChartZoomed = true; DoubleAnimation da = new DoubleAnimation(0, TimeSpan.FromMilliseconds(500).Duration()); this.ChartGridOverview.BeginAnimation(Grid.OpacityProperty, da); lastZoomedIndex = this.ChartGridOverview.Children.IndexOf(clickChart); this.ChartGridOverview.Children.Remove(clickChart); this.ChartGridOverview.Children.Insert(lastZoomedIndex, new Grid()); // Platzhalter gridZoomChart.Children.Add(clickChart); Point pt = clickChart.PointToScreen(new Point(0, 0)); Point pt1 = MainGrid.PointFromScreen(pt); Point ptSize = clickChart.PointToScreen(new Point(clickChart.ActualWidth, clickChart.ActualHeight)); Point ptSize1 = MainGrid.PointFromScreen(ptSize); ThicknessAnimation marginAnim = new ThicknessAnimation(); marginAnim.From = new Thickness(pt1.X, pt1.Y, MainGrid.ActualWidth - ptSize1.X, MainGrid.ActualHeight - ptSize1.Y); marginAnim.To = new Thickness(0); marginAnim.Duration = TimeSpan.FromMilliseconds(500).Duration(); marginAnim.EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut }; clickChart.BeginAnimation(Grid.MarginProperty, marginAnim); }
void marginAnim_Completed(object sender, EventArgs e) { StatisticsItemUserControl clickChart = gridZoomChart.Children[0] as StatisticsItemUserControl; gridZoomChart.Children.Remove(clickChart); this.ChartGridOverview.Children.RemoveAt(lastZoomedIndex); this.ChartGridOverview.Children.Insert(lastZoomedIndex, clickChart); // Platzhalter clickChart.BeginAnimation(Grid.MarginProperty, null); }