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

歡迎訪問 生活随笔!

生活随笔

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

C#

form 窗体增加边框_C#控件美化之路(13):美化Form窗口(上)

發布時間:2024/7/5 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 form 窗体增加边框_C#控件美化之路(13):美化Form窗口(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在開發中最重要的就是美化form窗口,在開發中,大多都是用會用自主美化的窗口開發程序。

本文只是點多,分為上中下節。分段講解。

本文主要講解窗口美化關鍵步驟。

首先美化窗體,就需要自己繪制最大化 最小化 關閉按鈕。

其次就是界面樣式,標題區域等

這一步很重要,首先要將窗體屬性設置為None。

其次,可以在屬性中將背景顏色調整,本教程是酷黑色,用的值為 37,37,38。可以根據自己需求使用自主值。

public WenForm() { InitializeComponent(); RefreshPadding(); SystemButtonAdd(); base.SetStyle( ControlStyles.UserPaint | ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | ControlStyles.SupportsTransparentBackColor, true); base.UpdateStyles(); //獲取顯示器的工作區。工作區是顯示器的桌面區域,不包括任務欄、停靠窗口和停靠工具欄。 this.MaximizedBounds = Screen.PrimaryScreen.WorkingArea; this.BackColor = Color.FromArgb(37, 37, 38); this.ForeColor = Color.White; }

關鍵構造函數中相關內容,重繪用的最多的就是如上代碼,基本上在重繪中使用很平凡。

private void SystemButtonAdd() { buttonPointX = 0; CloseButtonAdd(); MaxButtonAdd(); MinButtonAdd(); ConfigButtonAdd(); SkinButtonAdd(); }

接下來繪制系統按鈕 ,包含最大化 最小化 關閉 按鈕 ,可以根據自己需求增加按鈕,例如設置按鈕, 皮膚按鈕等,本文教程主要繪制 5個按鈕 ,代碼相近。

#region 添加關閉按鈕 private void CloseButtonAdd() { if (this.Controls["SystemButtonClose"] is WenControl close) { this.Controls.Remove(close); } buttonPointX = buttonPointX + 46; int x = buttonPointX; WenControl wenControl = new WenControl() { BackColor = Color.Transparent, Width = 46, Height = 30, Location = new Point(this.Width - x, 0), Name = "SystemButtonClose" }; wenControl.MouseEnter += (s, e) => { wenControl.BackColor = Color.FromArgb(63, 63, 65); }; wenControl.MouseLeave += (s, e) => { wenControl.BackColor = Color.Transparent; }; wenControl.Paint += (s, e) => { Graphics g = e.Graphics; g.SetGDIHigh(); using Pen p = new Pen(Color.White, 1); g.DrawLine(p, 18, 11, 18 + 8, 11 + 8); g.DrawLine(p, 18, 11 + 8, 18 + 8, 11); }; wenControl.Click += (s, e) => { this.Close(); }; this.SizeChanged += (s, e) => { wenControl.Location = new Point(this.Width - x, 0); }; this.Controls.Add(wenControl); } #endregion

關閉按鈕

#region 添加最大化按鈕 private void MaxButtonAdd() { if (this.Controls["SystemButtonMax"] is WenControl max) { this.Controls.Remove(max); } if (!MaximizeBox) return; buttonPointX = buttonPointX + 46; int x = buttonPointX; WenControl wenControl = new WenControl() { BackColor = Color.Transparent, Width = 46, Height = 30, Location = new Point(this.Width - x, 0), Name = "SystemButtonMax" }; wenControl.MouseEnter += (s, e) => { wenControl.BackColor = Color.FromArgb(63, 63, 65); }; wenControl.MouseLeave += (s, e) => { wenControl.BackColor = Color.Transparent; }; wenControl.Paint += (s, e) => { Graphics g = e.Graphics; g.SetGDIHigh(); using Pen p = new Pen(Color.White, 1); if (this.WindowState == FormWindowState.Maximized) { g.DrawRectangle(p, 18, 11 + 2, 6, 6); g.DrawRectangle(p, 18 + 2, 11, 6, 6); } else { g.DrawRectangle(p, 18, 11, 8, 8); } }; wenControl.Click += (s, e) => { if (WindowState == FormWindowState.Maximized) { this.WindowState = FormWindowState.Normal; } else { this.WindowState = FormWindowState.Maximized; } }; this.SizeChanged += (s, e) => { wenControl.Location = new Point(this.Width - x, 0); }; this.Controls.Add(wenControl); } #endregion

添加最大化按鈕

#region 最小化按鈕 private void MinButtonAdd() { if (this.Controls["SystemButtonMin"] is WenControl min) { this.Controls.Remove(min); } if (!MinimizeBox) return; buttonPointX = buttonPointX + 46; int x = buttonPointX; WenControl wenControl = new WenControl() { BackColor = Color.Transparent, Width = 46, Height = 30, Location = new Point(this.Width - x, 0), Name = "SystemButtonMin" }; wenControl.MouseEnter += (s, e) => { wenControl.BackColor = Color.FromArgb(63, 63, 65); }; wenControl.MouseLeave += (s, e) => { wenControl.BackColor = Color.Transparent; }; wenControl.Paint += (s, e) => { Graphics g = e.Graphics; g.SetGDIHigh(); using Pen p = new Pen(Color.White, 1); g.DrawLine(p, 18, 15, 18 + 8, 15); }; wenControl.Click += (s, e) => { this.WindowState = FormWindowState.Minimized; }; this.SizeChanged += (s, e) => { wenControl.Location = new Point(this.Width - x, 0); }; this.Controls.Add(wenControl); } #endregion

最小化按鈕

#region 設置按鈕 private void ConfigButtonAdd() { if (this.Controls["SystemButtonConfig"] is WenControl c) { this.Controls.Remove(c); } if (!ConfigButtonBox) return; buttonPointX = buttonPointX + 46; int x = buttonPointX; WenControl wenControl = new WenControl() { BackColor = Color.Transparent, Width = 46, Height = 30, Location = new Point(this.Width - x, 0), Name = "SystemButtonConfig" }; wenControl.MouseEnter += (s, e) => { wenControl.BackColor = Color.FromArgb(63, 63, 65); }; wenControl.MouseLeave += (s, e) => { wenControl.BackColor = Color.Transparent; }; wenControl.Paint += (s, e) => { Graphics g = e.Graphics; g.SetGDIHigh(); g.DrawImage(Properties.Resources.setbutton, new Rectangle(13, 5, 20, 20)); }; wenControl.Click += (s, e) => { ConfigButtonClick?.Invoke(this, e); }; this.SizeChanged += (s, e) => { wenControl.Location = new Point(this.Width - x, 0); }; this.Controls.Add(wenControl); } #endregion

設置按鈕

#region 皮膚按鈕 private void SkinButtonAdd() { if (this.Controls["SystemButtonSkin"] is WenControl c) { this.Controls.Remove(c); } if (!SkinButtonBox) return; buttonPointX = buttonPointX + 46; int x = buttonPointX; WenControl wenControl = new WenControl() { BackColor = Color.Transparent, Width = 46, Height = 30, Location = new Point(this.Width - x, 0), Name = "SystemButtonSkin" }; wenControl.MouseEnter += (s, e) => { wenControl.BackColor = Color.FromArgb(63, 63, 65); }; wenControl.MouseLeave += (s, e) => { wenControl.BackColor = Color.Transparent; }; wenControl.Paint += (s, e) => { Graphics g = e.Graphics; g.SetGDIHigh(); g.DrawImage(Properties.Resources.skin, new Rectangle(13, 5, 20, 20)); }; wenControl.Click += (s, e) => { SkinButtonClick?.Invoke(this, e); }; this.SizeChanged += (s, e) => { wenControl.Location = new Point(this.Width - x, 0); }; this.Controls.Add(wenControl); } #endregion

皮膚按鈕

本文中 關閉 ,最大化 ,最小化按鈕用GDI+畫。也可以用圖檔代替。

設置按鈕,和皮膚按鈕,在阿里圖標庫中下載,可以自主下載編輯。

關注文林軟控,帶你一起用C# 美化.NET控件。

總結

以上是生活随笔為你收集整理的form 窗体增加边框_C#控件美化之路(13):美化Form窗口(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

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