public void Fade(Canvas c, SliderTargetPos slide, double duration) { DoubleAnimation fadeanima = new DoubleAnimation(); if (slide == SliderTargetPos.front) { fadeanima.From = c.Opacity; fadeanima.To = 1; fadeanima.Duration = new System.Windows.Duration(TimeSpan.FromMilliseconds(duration)); c.BeginAnimation(Canvas.OpacityProperty, fadeanima); } else { fadeanima.From = c.Opacity; fadeanima.To = 0; fadeanima.Duration = new System.Windows.Duration(TimeSpan.FromMilliseconds(duration)); c.BeginAnimation(Canvas.OpacityProperty, fadeanima); } }
public void MouseNHolder(Canvas b, Thickness tothickness, bool isactive) { ThicknessAnimation holderslide = new ThicknessAnimation(); if (isactive) { holderslide.To = tothickness; holderslide.From = b.Margin; holderslide.Duration = new Duration(TimeSpan.FromMilliseconds(100)); b.BeginAnimation(Canvas.MarginProperty, holderslide); } else { holderslide.To = tothickness; holderslide.From = b.Margin; holderslide.Duration = new Duration(TimeSpan.FromMilliseconds(100)); b.BeginAnimation(Canvas.MarginProperty, holderslide); } }
private void FoldInnerCanvasSideward(Canvas canvas) { var canvasChildren = canvas.Children.OfType<StackPanel>().ToList(); if (canvas.Visibility == Visibility.Collapsed) { canvas.Visibility = Visibility.Visible; DoubleAnimation canvasAnimation = new DoubleAnimation() { From = 0, To = 1, Duration = TimeSpan.Parse("0:0:0.35") }; if (canvasChildren.Count() > 0) { double canvasMinWidth = GetCanvasMinWidth(canvas); FoldCanvasSideward(canvas); } canvas.BeginAnimation(Canvas.OpacityProperty, canvasAnimation); } else { DoubleAnimation canvasAnimation = new DoubleAnimation() { From = 1, To = 0, Duration = TimeSpan.Parse("0:0:0.35") }; canvasAnimation.Completed += (s, e) => canvas.Visibility = Visibility.Collapsed; canvas.BeginAnimation(Canvas.OpacityProperty, canvasAnimation); FoldCanvasSideward(canvas); } }
private void FoldCanvasSideward(Canvas canvas) { double minCanvasWidth = GetCanvasMinWidth(canvas); double maxCanvasWidth = GetCanvasMaxWidth(canvas); if (canvas.Width == minCanvasWidth) { var canvasChildren = canvas.Children.OfType<StackPanel>().ToList(); if (canvasChildren.Count() > 0) { int numberOfButtonsMinusOne = canvasChildren.Count() - 1;//number of buttons - 1 double initialCenterWidth = minCanvasWidth - canvasChildren.FirstOrDefault().ActualWidth - canvasChildren.FirstOrDefault().Margin.Left - canvasChildren.FirstOrDefault().Margin.Right;//width to be centered double finalCenterWidth = maxCanvasWidth - canvasChildren.FirstOrDefault().ActualWidth - canvasChildren.FirstOrDefault().Margin.Left - canvasChildren.FirstOrDefault().Margin.Right; double initialUnitWidth = Math.Round(initialCenterWidth / numberOfButtonsMinusOne); double finalUnitWidth = Math.Round(finalCenterWidth / numberOfButtonsMinusOne); StackPanel firstStackPanel = canvasChildren.FirstOrDefault(); int index = 0; foreach (StackPanel child in canvasChildren.Where(c => c != firstStackPanel).ToList())//all buttons except first one { index++; if (child != canvasChildren.Last())//until before the last button { DoubleAnimation childAnimation = new DoubleAnimation() { From = initialUnitWidth * index, To = finalUnitWidth * index, Duration = TimeSpan.Parse("0:0:0.35") }; child.BeginAnimation(Canvas.LeftProperty, childAnimation); } else//last button { DoubleAnimation childAnimation = new DoubleAnimation() { From = 0, To = maxCanvasWidth - minCanvasWidth, Duration = TimeSpan.Parse("0:0:0.35") }; child.BeginAnimation(Canvas.LeftProperty, childAnimation); } } DoubleAnimation canvasAnimation = new DoubleAnimation() { From = GetCanvasMinWidth(canvas), To = GetCanvasMaxWidth(canvas), Duration = TimeSpan.Parse("0:0:0.35") }; canvas.BeginAnimation(Canvas.WidthProperty, canvasAnimation); } } else { var canvasChildren = canvas.Children.OfType<StackPanel>().ToList(); if (canvasChildren.Count() > 0) { StackPanel firstStackPanel = canvasChildren.FirstOrDefault(); foreach (StackPanel child in canvasChildren)//all buttons except first one { if (child != firstStackPanel) { DoubleAnimation childAnimation = new DoubleAnimation() { From = Canvas.GetLeft(child), To = 0, Duration = TimeSpan.Parse("0:0:0.35") }; child.BeginAnimation(Canvas.LeftProperty, childAnimation); } } DoubleAnimation canvasAnimation = new DoubleAnimation() { From = GetCanvasMaxWidth(canvas), To = GetCanvasMinWidth(canvas), Duration = TimeSpan.Parse("0:0:0.35") }; canvas.BeginAnimation(Canvas.WidthProperty, canvasAnimation); } } }
private void SurfaceToggleButton_Checked(object sender, RoutedEventArgs e) { //Ein-/Ausblenden der einzelnen Stockwerke per SurfaceToggleButton (sender as SurfaceToggleButton).Foreground = Brushes.Black; Canvas animatedObject = new Canvas(); if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk0")) { Stockwerk0.Opacity = 1; animatedObject = Stockwerk0; if (!Is3DMode) { btn1.IsChecked = false; btn2.IsChecked = false; btn3.IsChecked = false; btn4.IsChecked = false; btn5.IsChecked = false; btn6.IsChecked = false; } } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk1")) { Stockwerk1.Opacity = 1; animatedObject = Stockwerk1; if (!Is3DMode) { btn0.IsChecked = false; btn2.IsChecked = false; btn3.IsChecked = false; btn4.IsChecked = false; btn5.IsChecked = false; btn6.IsChecked = false; } } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk2")) { Stockwerk2.Opacity = 1; animatedObject = Stockwerk2; if (!Is3DMode) { btn0.IsChecked = false; btn1.IsChecked = false; btn3.IsChecked = false; btn4.IsChecked = false; btn5.IsChecked = false; btn6.IsChecked = false; } } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk3")) { Stockwerk3.Opacity = 1; animatedObject = Stockwerk3; if (!Is3DMode) { btn0.IsChecked = false; btn1.IsChecked = false; btn2.IsChecked = false; btn4.IsChecked = false; btn5.IsChecked = false; btn6.IsChecked = false; } } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk4")) { Stockwerk4.Opacity = 1; animatedObject = Stockwerk4; if (!Is3DMode) { btn0.IsChecked = false; btn1.IsChecked = false; btn2.IsChecked = false; btn3.IsChecked = false; btn5.IsChecked = false; btn6.IsChecked = false; } } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk5")) { Stockwerk5.Opacity = 1; animatedObject = Stockwerk5; if (!Is3DMode) { btn0.IsChecked = false; btn1.IsChecked = false; btn2.IsChecked = false; btn3.IsChecked = false; btn4.IsChecked = false; btn6.IsChecked = false; } } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk6")) { Stockwerk6.Opacity = 1; animatedObject = Stockwerk6; if (!Is3DMode) { btn0.IsChecked = false; btn1.IsChecked = false; btn2.IsChecked = false; btn3.IsChecked = false; btn4.IsChecked = false; btn5.IsChecked = false; } } DoubleAnimation opacityAnim = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(.6)), FillBehavior.Stop); animatedObject.BeginAnimation(Canvas.OpacityProperty, opacityAnim); }
private void SurfaceToggleButton_Unchecked(object sender, RoutedEventArgs e) { (sender as SurfaceToggleButton).Foreground = Brushes.WhiteSmoke; Canvas animatedObject = new Canvas(); if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk0")) { Stockwerk0.Opacity = 0; animatedObject = Stockwerk0; } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk1")) { Stockwerk1.Opacity = 0; animatedObject = Stockwerk1; } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk2")) { Stockwerk2.Opacity = 0; animatedObject = Stockwerk2; } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk3")) { Stockwerk3.Opacity = 0; animatedObject = Stockwerk3; } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk4")) { Stockwerk4.Opacity = 0; animatedObject = Stockwerk4; } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk5")) { Stockwerk5.Opacity = 0; animatedObject = Stockwerk5; } if ((sender as SurfaceToggleButton).Tag.Equals("Stockwerk6")) { Stockwerk6.Opacity = 0; animatedObject = Stockwerk6; } DoubleAnimation opacityAnim = new DoubleAnimation(1, 0, new Duration(TimeSpan.FromSeconds(.6)), FillBehavior.Stop); animatedObject.BeginAnimation(Canvas.OpacityProperty, opacityAnim); }
/// <summary> /// Initializes a new instance of the <see cref="GeoMap"/> class. /// </summary> public GeoMap() { Canvas = new Canvas(); Map = new Canvas(); Canvas.Children.Add(Map); Content = Canvas; Canvas.SetBinding(WidthProperty, new Binding { Path = new PropertyPath(ActualWidthProperty), Source = this }); Canvas.SetBinding(HeightProperty, new Binding { Path = new PropertyPath(ActualHeightProperty), Source = this }); Lands = new Dictionary<string, MapData>(); SetCurrentValue(DefaultLandFillProperty, new SolidColorBrush(Color.FromArgb(200,255,255,255))); SetCurrentValue(LandStrokeProperty, new SolidColorBrush(Color.FromArgb(30, 55,55, 55))); SetCurrentValue(LandStrokeThicknessProperty, 1.3d); SetCurrentValue(AnimationsSpeedProperty, TimeSpan.FromMilliseconds(500)); SetCurrentValue(BackgroundProperty, new SolidColorBrush(Color.FromArgb(150, 96, 125, 138))); SetCurrentValue(GradientStopCollectionProperty, new GradientStopCollection { new GradientStop(Color.FromArgb(100,2,119,188), 0d), new GradientStop(Color.FromRgb(2,119,188), 1d), }); SetCurrentValue(HeatMapProperty, new Dictionary<string, double>()); SetCurrentValue(GeoMapTooltipProperty, new DefaultGeoMapTooltip {Visibility = Visibility.Hidden}); Canvas.Children.Add(GeoMapTooltip); SizeChanged += (sender, e) => { Draw(); }; MouseWheel += (sender, e) => { if (!EnableZoomingAndPanning) return; e.Handled = true; var rt = Map.RenderTransform as ScaleTransform; var p = rt == null ? 1 : rt.ScaleX; p += e.Delta > 0 ? .05 : -.05; p = p < 1 ? 1 : p; var o = e.GetPosition(this); if (e.Delta > 0) Map.RenderTransformOrigin = new Point(o.X/ActualWidth,o.Y/ActualHeight); Map.RenderTransform = new ScaleTransform(p, p); }; MouseDown += (sender, e) => { if (!EnableZoomingAndPanning) return; DragOrigin = e.GetPosition(this); }; MouseUp += (sender, e) => { if (!EnableZoomingAndPanning) return; var end = e.GetPosition(this); var delta = new Point(DragOrigin.X - end.X, DragOrigin.Y - end.Y); var l = Canvas.GetLeft(Map) - delta.X; var t = Canvas.GetTop(Map) - delta.Y; if (DisableAnimations) { Canvas.SetLeft(Map, l); Canvas.SetTop(Map, t); } else { Map.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(l, AnimationsSpeed)); Map.BeginAnimation(Canvas.TopProperty, new DoubleAnimation(t, AnimationsSpeed)); } }; }