Example #1
0
        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);
                }
            }
        }
Example #2
0
        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;
            }
        }
Example #3
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;
            }
        }
Example #4
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);
        }