首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 模擬 MSN 視窗抖動效果:兩種實作方式

     編輯:關於C語言

原理

利用 Random 產生隨機位移,快速改變 Form.Left/Top,再還原,產生抖動視覺效果。

方式一:每幀即時還原

private void button1_Click(object sender, EventArgs e)
{
    int recordX = this.Left, recordY = this.Top;
    Random rnd = new Random();
    for (int i = 0; i < 100; i++)
    {
        int x = rnd.Next(10), y = rnd.Next(10);
        this.Left += (x % 2 == 0) ? x : -x;
        this.Top += (y % 2 == 0) ? y : -y;
        this.Left = recordX; this.Top = recordY; // 立即還原
    }
}

方式二:迴圈結束後統一還原

private void button2_Click(object sender, EventArgs e)
{
    int recordX = this.Left, recordY = this.Top;
    Random rnd = new Random();
    for (int i = 0; i < 50; i++)
    {
        int x = rnd.Next(10), y = rnd.Next(10);
        this.Left += (x % 2 == 0) ? x : -x;
        this.Top += (y % 2 == 0) ? y : -y;
        Thread.Sleep(1); // 短暫延遲讓畫面更新
    }
    this.Left = recordX; this.Top = recordY;
}

比較

  • 方式一:抖動幅度小、頻率高,視覺像「震動」。
  • 方式二:位移累積較大、有延遲,視覺像「搖晃」。
  • 實際專案建議使用 Timer 控制頻率,避免阻塞 UI 執行緒。

完整範例下載

Demo 專案

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved