有没有办法在C#中制作窗口移动动画?

时间:2013-06-14 19:45:27

标签: c# .net animation transition

我需要将窗口移动到不同的位置,但我不想让它在当前位置消失并出现在所需位置。我使用while循环来通过增加其y坐标来移动窗口一个像素,但是可能已经在.NET中为这些类型的动画实现了一些实现的方法。此外,我希望能够设置动画的持续时间。这种动画在.NET中有什么方法吗?这就是我实现窗口移动的方式:

while (window.Location.Y != newY)
{
    window.Location = new Point(window.Location.X, window.Location.Y + 1);
}

2 个答案:

答案 0 :(得分:1)

嗨andrej你可以试试WinForms。

        IntPtr ID; 
        int counter = 0;//index to move window

        public Form1()
        {
            InitializeComponent();
            ID = this.Handle; //get handle of form    
        }

        [DllImport("user32.dll", SetLastError = true)]
        internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

        //place a timer and in his tick event...
        //and choose the interval of the tick.

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (counter <= Screen.PrimaryScreen.Bounds.Right)
                MoveWindow(ID, counter++, 0, this.Width, this.Height, true);
            else
                counter = 0;
        }

或没有PInvoke

int counter = 0;//index to move window

    public Form1()
    {
        InitializeComponent();   
    }

    //place a timer and in his tick event...
    //and choose the interval of the tick.

    private void timer1_Tick(object sender, EventArgs e)
    {
        if (counter <= Screen.PrimaryScreen.Bounds.Right)
            this.Location = new Point(counter++, 0);
        else
            counter = 0;
    }

这个例子只是沿着X坐标移动窗口,你可以用坐标来玩。

答案 1 :(得分:0)

几个问题: - 你指的是什么窗口? - 这是什么类型的应用程序?的WinForms?网络应用?别的什么?

如果是网络,请在客户端进行。使用jQuery。