Панель макета потока - как анимировать

Я разрабатываю приложение Windows Form. В том, что я использую FlowLayoutPanel, Я помещаю все элементы управления внутри этого FlowLayoutPanel панель. Я заинтересован в том, чтобы сделать что-то вроде домашнего экрана Windows 8. Я бы разместил элементы управления внутри FlowLayoutPanel панель и есть элементы управления один за другим на определенной скорости.

Есть ли способ добиться этого?

На самом деле то, что я делаю,

В моей форме у меня есть элементы управления, как следует внутри FlowLayoutPanel

Главный FlowLayoutPanel свойства.

this.flpFullLayout.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                    | System.Windows.Forms.AnchorStyles.Left)));
this.flpFullLayout.AutoScroll = true;
this.flpFullLayout.BackColor = System.Drawing.SystemColors.Control;
this.flpFullLayout.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.flpFullLayout.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flpFullLayout.Location = new System.Drawing.Point(2, 32);
this.flpFullLayout.Name = "flpFullLayout";
this.flpFullLayout.Size = new System.Drawing.Size(1014, 559);
this.flpFullLayout.Controls.Add(this.pnlDummy1);
this.flpFullLayout.Controls.Add(this.pnlAddUserFull);
this.flpFullLayout.Controls.Add(this.pnlDummy2);
this.flpFullLayout.Controls.Add(this.pnlAccess);
this.flpFullLayout.Controls.Add(this.pnlDummy3);
this.flpFullLayout.Controls.Add(this.pnlDashBord);

При загрузке формы я уменьшаю фиктивные размеры панели с помощью фонового рабочего.

Thread.Sleep(200);
            if (pnlDummy2.InvokeRequired)
                pnlDummy2.Invoke(new MethodInvoker(delegate
                {
                    for (int len = 570; len > 0; len -= 10)
                   {
                        Thread.Sleep(2);
                        pnlDummy2.Size = new Size(950, len);
                        flpFullLayout.ScrollControlIntoView(pnlAddUser);
                    }
                    pnlDummy2.Visible = false;
                    flpFullLayout.ScrollControlIntoView(pnlAddUser);
                }));
            else
            {
                for (int len = 570; len > 0; len -= 10)
                {
                    Thread.Sleep(2);
                    pnlDummy2.Size = new Size(950, len);
                    flpFullLayout.ScrollControlIntoView(pnlAddUser);
                }
                pnlDummy2.Visible = false;
                flpFullLayout.ScrollControlIntoView(pnlAddUser);
            }
            Thread.Sleep(200);
            if (pnlDummy3.InvokeRequired)
                pnlDummy3.Invoke(new MethodInvoker(delegate
                {
                    for (int len = 570; len > 0; len -= 10)
                    {
                        Thread.Sleep(2);
                        pnlDummy3.Size = new Size(950, len);
                        flpFullLayout.ScrollControlIntoView(pnlAddUser);
                    }
                    pnlDummy3.Visible = false;
                    flpFullLayout.ScrollControlIntoView(pnlAddUser);
                }));
            else
            {
                for (int len = 570; len > 0; len -= 10)
               {
                    Thread.Sleep(2);
                   pnlDummy3.Size = new Size(950, len);
                   flpFullLayout.ScrollControlIntoView(pnlAddUser);
                }
                pnlDummy3.Visible = false;
                flpFullLayout.ScrollControlIntoView(pnlAddUser);
            }

Я делаю это для достижения простой анимации. Есть ли простой способ сделать это.

1 ответ

Решение

Если вы делаете это с помощью Windows Forms, вы ограничиваете себя тем, что реально можете достичь.

Если вы внедряете это решение самостоятельно, вам лучше использовать полностью настраиваемый элемент управления.

Если у вас есть свободные деньги, уже есть компании-производители компонентов, которые предоставляют стиль Windows 8, интерфейс Metro Tile.

Для достижения наилучших результатов откажитесь от Windows Forms и используйте WPF.

Другие вопросы по тегам