C#轻松仿造Vista风格窗体

Vista已经出来很久了,其时尚、前卫的设计思想估计很多从XP过渡的人都会难以适应,但是用多了就是感觉相当不错啊!回头看看XP的风格,觉得XP风格还是要差多了。那么在XP平台下模拟Vista的风格也成为了编程人员的一大挑战梦想。Vista的窗体中最基本的一个风格就是可以随意给程序边框更换颜色,如图所示:

    这个我喜欢,可是我们如何用编程来实现这个功能呢?大家知道PNG格式的图片有透明的效果,或许我们可以从这里下手。虽然不能100%模仿Vista,但是作为编程爱好者,这种尝试是值得的。通过学习,使我进一步熟悉了对GDI+的一些使用,有些心得,希望能抛砖引玉,期待您更好的大作诞生。由于本文是缩写,看本文前,请先下载附件代码,否则很多变量名会突然冒出来,会让你看不懂。

一、准备工作

1、先从Vista 系统中截取图片一张,如图所示:


2、用PS将这幅图片分解成上下左右、四个角、最小化、最大化、关闭和中间几个部分,并将图片独立出来保存为透明度为50%的PNG格式图片


3、用VS新建一个C# WinForm项目。将FormBorderStyle 设置为None ,然后在右上角放入三个picturebox,分别放入最小化、最大化、关闭按钮的图片,放在标题栏右侧。其他部分则直接使用GDI+绘制上去。

二、使用GDI+

1、先将上下左右的图片放入资源文件中。定义几个全局变量用于读取这些图片。这些图片可以先放在资源文件中,然后再初始化窗体的时候读取进来。

        private Image m_LeftTop;

       private Image m_Top;

        private Image m_RightTop;

        private Image m_Left;

        private Image m_Right;

        private Image m_LeftBottom;

        private Image m_Bottom;

        private Image m_RightBottom;

2、如何将图片绘制到界面上,一般有两种方法:

方法一、           

Brush brush = new TextureBrush(………);

graph.FillRectangle(……….);

方法二、

graph.DrawImage(………);

其中方法一是使用纹理刷的功能,方法二使用的是直接将图片画到控件上。这里的graph是重绘OnPaint(PaintEventArgs e)中e.Graphics以本软件画顶部的边界为例子。首先我们重写OnPaint()。

        protected override void OnPaint(PaintEventArgs e)

        {

            base.OnPaint(e);           

            DrawTop(e.Graphics);       

        }

然后:

        private void DrawTop(Graphics graph)

        {

          Brush brush = new TextureBrush(m_Top, new Rectangle(0, 0, m_Top.Width, m_Top.Height));

          graph.FillRectangl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值