日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#实现简单气泡屏保(一)

發布時間:2023/12/18 C# 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#实现简单气泡屏保(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本次使用一個Timer實現

首先簡單分析下氣泡屏保原理

  • 對窗體進行變形(圓形)
  • 通過控制氣泡與屏幕左邊緣(this.Left)以及上邊緣的距離(this.Top)進而使氣泡運動
  • 氣泡碰到屏幕四周進行反彈
  • 通過對屏幕四個邊緣來分析(屏幕每個邊緣都有兩個方向碰撞)

    具體實現代碼如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Drawing.Drawing2D;//要應用GraphicsPath這個類,命名空間中必須有Drawing.Drawing2D,因為原命名空間中沒有,所以需要自行添加此命名空間.namespace Test2_氣泡窗口 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//去掉Form1邊框this.FormBorderStyle = FormBorderStyle.None;//設置Form1初始位置this.Location = new Point(0,0);//設置Form1大小this.Size = new Size(200, 200);//設置Form1背景顏色this.BackColor = Color.DeepPink;//設置label1內容(氣泡內部字體)label1.Text = "深夜食堂";//設置label1字體label1.Font = new Font("楷體", 20);//確保字體顯示完整,調整空間大小label1.AutoSize = true;//設置啟動Timer1timer1.Start();//實例化GraphicsPathGraphicsPath bianxing = new GraphicsPath();//設置實例化后的對象為圓形-->寬高與窗體相同即為圓(窗體內切圓)bianxing.AddEllipse(0, 0, this.Width, this.Height);//應用圓形(設置與窗體關聯窗口區域-->圓形與窗體關聯)this.Region = new Region(bianxing);//不透明度為0.8,透明度為0.2this.Opacity = 0.8;}//聲明變量用于小球移動int x = 4;int y = 4;private void timer1_Tick(object sender, EventArgs e){//控制小球運動方向this.Left += x;this.Top += y;//碰底部if (this.Top + this.Height >= Screen.PrimaryScreen.WorkingArea.Height){if (x > 0 && y > 0)//氣泡右下方向碰底部{this.BackColor = Color.Blue;x = 4;y = -4;}if (x < 0 && y > 0)//氣泡左下方向碰底部{this.BackColor = Color.Red;x = -4;y = -4;}}//碰右邊if (this.Left + this.Width >= Screen.PrimaryScreen.WorkingArea.Width){if (x > 0 && y > 0)//氣泡右下方向碰右邊{this.BackColor = Color.DarkOrchid;x = -4;y = 4;}if (x > 0 && y < 0)//氣泡右上方向碰右邊{this.BackColor = Color.Yellow;x = -4;y = -4;}}//碰頂部if (this.Top <= 0){if (x > 0 && y < 0)//氣泡右上方向碰頂部{this.BackColor = Color.Orange;x = 4;y = 4;}if (x < 0 && y < 0)//氣泡左上向碰頂部{this.BackColor = Color.DeepSkyBlue;x = -4;y = 4;}}//碰左邊if (this.Left <= 0){if (x < 0 && y < 0)//氣泡左上方向碰左邊{this.BackColor = Color.Green;x = 4;y = -4;}if (x < 0 && y > 0)//氣泡左下方向碰左邊{this.BackColor = Color.Purple;x = 4;y = 4;}}}} }

看完記得點贊嗷,后面還會有精彩素材!!!

總結

以上是生活随笔為你收集整理的C#实现简单气泡屏保(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。