0

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

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

2 回答 2

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 坐标移动窗口,你可以玩转坐标。

于 2013-06-15T16:08:47.353 回答
0

几个问题: - 您指的是什么窗口?- 这是什么类型的应用程序?表格?网络应用程序?别的东西?

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

于 2013-06-14T20:55:52.377 回答