创建非矩形的 Windows 窗体
-------------
如果监视器的颜色深度设置大于 24 位,则不管 TransparencyKey 属性是如何设置的,窗体的非透明部分都会产生显示问题。若要避免出现这种问题,请确保“显示”控制面板中的监视器颜色深度的设置小于 24 位。当开发具有这种透明功能的应用程序时,请牢记应使您的用户意识到此问题。

解决方案 »

  1.   

    把上面的代码加到
    private void InitializeComponent()
    {
    System.Drawing.Bitmap Img = new System.Drawing.Bitmap("c:\\Example.bmp");
    //The color at Pixel(10,10) is rendered as transparent for the complete background. 
    Img.MakeTransparent(Img.GetPixel(10,10));
    this.BackgroundImage = Img;
    this.TransparencyKey = Img.GetPixel(10,10);}
    这是控件窗体透明的。
    --------------------------------
    以前,作不规则窗体涉及到API的调用和大量的编程,不是谁都能作的。很多程序员都望而却步。
      
      现在我们可以使用C#.net轻松的创建不规则窗体,下面我就用一个简单的例子来讲述其制作过程。
      
      1.绘制不规则窗体位图 
      2.设置窗体基本属性
      3.编写窗体相关代码 (要实现窗口的关闭,移动等操作)  
       
      1.绘制不规则窗体位图 
      可以使用任意一种你喜欢的作图工具,制作一个有形状的位图,背景使用一种其他的颜色。这个颜色在编程中用得着,所以最好使用一种容易记忆的颜色。
      如图下图,本例中使用的背景色为黄色(#ffff00/yellow),文件名为bk.bmp
    2.创建windows窗体并设置窗体基本属性
      1>新建windows应用程序
     2>选中新建的窗体,设置其相应属性:
      (1)。将 FormBorderStyle 属性设置为 None。
      (2)。将窗体的 BackgroundImage 属性设置为先前创建的位图文件。不必将文件添加到项目系统中;这将在指定该文件作为背景图像时自动完成。
      (3)。将 TransparencyKey 属性设置为位图文件的背景色,本例中为黄色。(此属性告诉应用程序窗体中的哪些部分需要设置为透明。 )
      这时你就可以按F5测试你的程序,可以看到如图所示的窗体。现在窗体还不能拖动,只能通过结束程序,或者alt+F4关闭。下面我们编写相应的代码来实现标题栏的相应功能。