public static StackLine Parse(string line)
                {
                    StackLine res = new StackLine();

                    //Common part
                    string[] split = line.Split(' ');
                    res.Layer        = int.Parse(split[(int)Beginning.Layer]);
                    res.Size         = double.Parse(split[(int)Beginning.Size],CultureInfo.InvariantCulture);
                    res.CurrentShape = ShapeString.First(x => x.Value == split[(int)Beginning.Shape]).Key;
                    //Varying part
                    //res.Arguments = res.Arguments.Where(x => x.Indexes.ContainsKey(res.CurrentShape)).ToArray();
                    for (int i = 0; i < res.Arguments.Length; i++)
                    {
                        res.Arguments[i].Parse(res.CurrentShape,line);
                    }
                    return(res);
                }
        private static void CreateHoverUI()
        {
            HoverUI interfaccia = new HoverUI();

            var rect = new ShapeRectangle(0, 0, Color.OrangeRed, 50, 50);

            var color = new ShapeString(100, 100, Color.White, "Color: ");

            interfaccia.Render += (s, e) =>
            {
                color.Text = $"Color: {interfaccia.GetColorAtPixel(new Point(0, 0))}";

                int speed = 5;

                if (interfaccia.GetBackgroundKeyDown(Keys.Right))
                {
                    rect.X += speed;
                }
                if (interfaccia.GetBackgroundKeyDown(Keys.Left))
                {
                    rect.X -= speed;
                }

                if (interfaccia.GetBackgroundKeyDown(Keys.Up))
                {
                    rect.Y -= speed;
                }
                if (interfaccia.GetBackgroundKeyDown(Keys.Down))
                {
                    rect.Y += speed;
                }
            };

            interfaccia.AddShape(color);
            interfaccia.AddShape(rect);

            interfaccia.Run();
        }