没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐

C# winform 中不规则窗体制作的解决方案(已经解决 24 位色以上不能正常显示问
题)
作者:杨丹
相信每个编程爱好者都希望自己的程序不仅性能优越而且有一个美观的界面,一个区别于别
人的程序的个性化的界面。然而以前烦琐的 API 调用和大量的代码使大家望而却步。现在好了,
在 C#中通过少量的代码就可以实现不规则窗体的制作。如果您有兴趣就接着往下看吧。
一、在说我用的方法前,我不得不说一下另一种方法,这种方法在实现不规则窗体自身显示效
果(即除开窗体的移动、最大最小话、关闭等)时是不用编代码的。非常简便,但它的致命缺
点就是要要求程序运行环境在 24 位色以下,否则不规则窗体的透明部分就会显示出来,窗体
会非常难看。
方法 1:
步骤 1:先用图象处理软件制作您的不规则窗体的位图 BMP(最好是位图,其它的我没有
试过:))。制作时请注意将背景色(即需要设置成透明的颜色部分)设置成与非背景图片颜
色反差较大的颜色,并且使用一种容易记忆的颜色。如下图:
图中黄颜色背景将要设置成透明部分

步骤 2:新建 windows 应用程序。创建 windows 窗体并设置窗体基本属性。
(1)将 FormBorderStyle 属性设置为 None。
(2)将窗体的 BackgroundImage 属性设置为先前创建的位图文件。不必将文件添加到项目系统
中;这将在指定该文件作为背景图像时自动完成。
(3)将 TransparencyKey 属性设置为位图文件的背景色,本例中为黄色。(此属性告诉应用程
序窗体中的哪些部分需要设置为透明。 )
上面两个步骤已经完成了不规则窗体自身显示效果的制作,此刻您要做的就是为窗体添加移动、关闭、
最大最小化的事件。这个将在方法 2 中详细介绍。
方法 1 在 24 位色以下的环境中可以显示正常,但在 24 位色以上时黄色背景不能消失,所以方
法 1 不能胜任 24 位色以上环境。
为了解决这个问题,我们可以用到方法 2。
方法 2
步骤 1:同方法 1,先用图象处理软件制作您的不规则窗体的位图 BMP
步骤 2:创建 windows 应用程序。创建 windows 窗体。
由于方法 2 是调用类来实现制作不规则窗体,所以您只需要在窗体的 LOAD 事件中加入以
下代码:
private void login_Load(object sender, System.EventArgs e)
{
//初始化调用不规则窗体生成代码
BitmapRegion BitmapRegion =new BitmapRegion();//此为生成不规则窗体和控件的类
BitmapRegion.CreateControlRegion(this,new Bitmap("HMlogin.bmp"));
}
其中"HMlogin.bmp"为您制作的位图。
下面就是文件 BitmapRegion.cs 我在网上找到的是英文的,自己翻译了一下,英语水平有限,有
错的地方还请大家指出。

/
***********************************************************************************
****/
//
// 功能描述:不规则窗体和控件的生成类
// 撰 写 人:不祥(网上搜集)
// //
// 修改说明:2005.8.31 杨丹翻译和修改
//
/**********************************************************************************
*****/
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace MsgClassLibrary
{
/// <summary>
/// Summary description for BitmapRegion.
/// </summary>
public class BitmapRegion
{
public BitmapRegion()
{}
剩余10页未读,继续阅读





















拽着月亮看日出
- 粉丝: 0
- 资源: 17

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0