程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 1.窗體與界面設計-特殊形狀的窗體

1.窗體與界面設計-特殊形狀的窗體

編輯:C#入門知識

將界面以不規則的形狀顯示在桌面上,可以給用戶一種新鮮的感覺。

022 非矩形窗體

在 .NET4.0 框架中可以不調用 API 非常輕松地實現這一功能。只要重寫窗體的 OnPaint 方法,在方法中重新繪制窗體,然後用透明色將窗體設置透明即可。

1.創建一個項目,默認窗體為 Form1,向 Form1 窗體中添加 Label 控件,並將 BackColor 屬性設為透明,將 text 屬性設為空。

2.將窗體的 TransparencyKey 屬性設為 Control,FormBorderStyle 設為 None。

namespace _022_SpecialSharpWindows
{
    public partial class Form1 : Form
    {
        Bitmap bit;    //聲明一個System.Drawing.Bitmap類的對象bit
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            bit = new Bitmap("Heart.bmp");      //從指定的圖像初始化System.Drawing.Bitmap類的新實例
            bit.MakeTransparent(Color.Blue);    //使用默認的透明顏色對System.Drawing.Bitmap類進行透明設置
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.DrawImage((Image)bit, new Point(0, 0));  //將圖片畫出
        }

        private void label1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

023 建立字體形狀窗體

在 .NET4.0 框架中可以不調用 API 非常輕松地實現這一功能。只要先將字體畫在一幅圖上,然後重寫窗體的 OnPaint 方法,在方法中用圖重新繪制窗體,用背景色將窗體設置透明即可。

1.創建一個項目,默認窗體為 Form1,向 Form1 窗體中添加 Label 控件,並將 BackColor 屬性設為透明,將 text 屬性設為空。

2.將窗體的 TransparencyKey 屬性設為 Control,FormBorderStyle 設為 None。

namespace _023_WordWindows
{
    public partial class Form1 : Form
    {
        Bitmap bit;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            bit = new Bitmap("1.bmp");
            bit.MakeTransparent(Color.Blue);
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.DrawImage((Image)bit, new Point(0, 0));
        }

        private void label1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

在 .NET4.0 框架中可以不調用 API 非常輕松地實現這一功能。大多數控件都有 Anchor 屬性,當在窗體上添加控件時設置 Anchor 屬性即可。Anchor 屬性是個錨定屬性,指定了控件距容器邊緣的距離。當窗體大小變化時,控件距窗體邊緣的距離不變,自然大小就隨窗體自動調整。

創建一個項目,默認窗體為 Form1,向 Form1 窗體中添加 MenuStrip 控件、ToolStrip 控件和 Button 控件,同時設置 Button 控件的 Anchor 屬性和 Text 屬性。


在 .NET4.0 框架中可以不調用 API 非常輕松地實現這一功能。只要在窗體中加入 SplitContainer 控件即可。SplitContainer 控件帶有一個分隔欄,用來把窗體分成兩部分。

 

創建一個項目,默認窗體為 Form1,向 Form1 窗體中添加 MenuStrip 控件用來設計菜單欄、添加 ToolStrip 控件用來設計工具欄,添加 SplitContainer 控件用來設計分隔欄。


026 隨機更換主界面背景

隨機更換主界面背景使用 Random 類和 ImageList 控件。首先為 ImageList 控件添加一組圖片,然後實例化一個 Random 類,再用 Next 方法產生一個隨機數以決定將哪張圖片設為背景。

創建一個項目,默認窗體為 Form1,向 Form1 窗體中添加 ImageList 控件,並為 ImageList 控件添加圖片。

namespace _026_RandomBackGround
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Random rdn = new Random();                      //定義一個偽隨機數生成器對象
            int i = rdn.Next(imageList1.Images.Count);      //產生一個隨機數
            this.BackgroundImage = imageList1.Images[i];    //設置窗體的背景圖片
        }
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved