public static void RemoveSpecficChild(UIElement child, Grid grid) { int start_time = 100; int indeks = grid.Children.IndexOf(child); Animate.RemoveChildAnimate(child, grid); var tmp = new List <UIElement>(); var tmp1 = new List <UIElement>(); tmp.AddRange(grid.Children.Cast <UIElement>().Skip(indeks).ToArray()); tmp1.AddRange(grid.Children.Cast <UIElement>().Take(indeks).ToArray()); grid.Children.Clear(); for (int k = 0; k < indeks; k++) { grid.Children.Add(tmp1[k]); } foreach (var c in tmp) { Animate.AddChild(c, grid); if (Grid.GetRow(c) > 0) { Animate.MoveUp(c, grid, start_time += 50); } if (Grid.GetRow(c) == 0 && Grid.GetColumn(c) > 0) { Animate.MoveDiagonally(c, grid, start_time); } } }
public static void RemoveRangeOfChildren(UIElement[] children, Grid grid) { //80% radi kako treba int start_time = 100; Thread t = new Thread(new ThreadStart(() => { Thread.Sleep(start_time); grid.Dispatcher.Invoke(new Action(() => { foreach (var c in children) { Animate.RemoveChildAnimate(c, grid); } })); })); List <UIElement> tmp = null; List <UIElement> tmp1 = null; if (grid.Children.IndexOf(children[0]) == 0) { tmp = new List <UIElement>(); tmp.AddRange(grid.Children.Cast <UIElement>().Skip(children.Count()).ToArray()); grid.Children.Clear(); } else { tmp = new List <UIElement>(); tmp1 = new List <UIElement>(); tmp1.AddRange(grid.Children.Cast <UIElement>().Take(grid.Children.IndexOf(children[0])).ToArray()); tmp.AddRange(grid.Children.Cast <UIElement>().Skip(children.Count()).ToArray()); } grid.Children.Clear(); if (tmp1 != null) { for (int k = 0; k < children.Count(); k++) { grid.Children.Add(tmp1[k]); } } foreach (var c in tmp) { c.Opacity = 0.5; Animate.AddChild(c, grid); if (Grid.GetRow(c) > 0) { Animate.MoveUp(c, grid, start_time += 50); } if (Grid.GetRow(c) == 0 && Grid.GetColumn(c) > 0) { Animate.MoveDiagonally(c, grid, start_time); } c.Opacity = 1.0; } }
public static void RemoveFirstAnimate(Grid grid, int start_time) { var d = grid.Children.Cast <UIElement>().ElementAt(0); Animate.RemoveChildAnimate(d, grid); var tmp = new List <UIElement>(); tmp.AddRange(grid.Children.Cast <UIElement>().ToArray()); grid.Children.Clear(); foreach (var c in tmp) { c.Opacity = 0.5; Animate.AddChild(c, grid); if (Grid.GetRow(c) > 0) { Animate.MoveUp(c, grid, start_time += 50); } if (Grid.GetRow(c) == 0 && Grid.GetColumn(c) > 0) { Animate.MoveDiagonally(c, grid, start_time); } c.Opacity = 1.0; } }
public static void RemoveFirstAnimate(Grid grid, int start_time) { var d = grid.Children.Cast <UIElement>().ElementAt(0); //Animate.RemoveChildAnimate(d, grid); grid.Children.Remove(d); var tmp = new List <UIElement>(); tmp.AddRange(grid.Children.Cast <UIElement>().ToArray()); foreach (var c in grid.Children.Cast <UIElement>()) { if (Grid.GetRow(c) > 0) { Animate.MoveUp(c, grid, start_time += 50); } if (Grid.GetRow(c) == 0 && Grid.GetColumn(c) > 0) { Animate.MoveDiagonally(c, grid, start_time); } } Thread t = new Thread(new ThreadStart(() => { Thread.Sleep(start_time); grid.Dispatcher.Invoke(new Action(() => { grid.Children.Clear(); foreach (var tm in tmp) { Animate.AddChildAnimate(tm, grid, 0); } })); })); t.Start(); GC.Collect(1); }