- 設定FormBorderStyle為None
可透過設定頁面完成設定或是直接撰寫程式FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
- 指定BackgroundImage並依據需求設定BackgroundImageLayout
- 設定TransparentKey為底圖不要顯示部分的顏色,若使用範例圖片則設定為白色
- 到目前為止已經完成客製化的視窗介面,編譯並執行可以看到視窗呈現愛心形狀,心型以外區域可以顯示桌面內容,點選心型以外的區域也可不受限制
因為一開始我們把FormBorderStyle設定為None,邊框都不顯示連帶的最上面的標題列與控制盒(最小、縮小、最大化按鈕)也一併被取消了,因此若需要相關控制必須自行增加相關按鈕實現,底下示範移動視窗功能:
- 切換到檢視程式碼視窗,在視窗類別中增加變數
private Point mouse_offset;
- 增加MouseDown事件
private void Form1_MouseDown(object sender, MouseEventArgs e) { mouse_offset = new Point(-e.X, -e.Y); }
- 增加MouseMove事件
private void Form1_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { Point mousePos = Control.MousePosition; mousePos.Offset(mouse_offset.X, mouse_offset.Y); Location = mousePos; } }
- 若不是透過屬性視窗新增事件,記得自己手動加入事件註冊
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown); this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
完成上述步驟後,此視窗就可以透過滑鼠左鍵拖曳進行移動了!
範例用圖:
沒有留言:
張貼留言