创建非矩形窗体

Posted feiyucha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建非矩形窗体相关的知识,希望对你有一定的参考价值。

实现效果:

  技术分享图片

 知识运用:

  通过重写窗体的OnPaint方法 在其中对窗体进行重绘 并使用透明色将窗体设置为透明来实现

  OnPaint方法: 用来从新绘制窗体图像 

  protected override void OnPaint(PaintEventArgs e) //painteventargs为Paint事件提供数据

  Bitmap类的MakeTransparent方法: 使用指定颜色对位图进行透明  

     public void MakeTransparent(Color transparentColor)  //transparentColor:Color结构 表是使之透明的颜色

  this.BackColor = System.Drawing.SystemColors.Control;

  this.TransparencyKey = System.Drawing.SystemColors.Control;

实现代码:  

        private void Form1_Load(object sender, EventArgs e)
        {
            bit = new Bitmap(Properties.Resources.bit);//从指定的图像初始化Bitmap对象
            bit.MakeTransparent(Color.Black);       //使用指定的颜色对Bitmap位图透明
        }
        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.DrawImage(bit, new Point(0, 0));   //在窗体上绘制图片
        }

 

以上是关于创建非矩形窗体的主要内容,如果未能解决你的问题,请参考以下文章

模式窗体与非模式窗体

我想围绕窗体中的按钮控件画一个矩形,然后在矩形里填充图片或颜色,用API怎么做?高分

delphi 如何改变主窗体

GLSL对非纹理矩形的模糊效果

求javascript写一个方块或图片沿窗体做矩形运动的代码

如何制作非矩形形状的图像