注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

Graphics Programming with GDI+ 学习笔记(五)  

2011-10-27 18:50:13|  分类: C# & .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Graphics Programming with GDI+ 学习笔记(一) - Castor - 趁年轻,多折腾

第四章   使用画笔和刷子(1)

刷子的类型模型:

Graphics Programming with GDI+ 学习笔记(五) - Castor - 趁年轻,多折腾

 SolidBrush就不必多说了,其实就是纯色画刷。这里说说HatchBrush

HatchBrush是用阴影样式、前景色和背景色定义矩形画笔,阴影样式由HatchStyle决定,该属性获取或者设置一个HatchStyle的枚举成员,可以是如下的一种:

成员

说明

BackwardDiagonal

从右上到左下的对角线的线条图案

Cross

指定交叉的水平线和垂直线

DarkDownwardDiagonal

指定从顶点到底点向右倾斜的对角线

DarkHorizontal

指定水平线的两边夹角比 Horizontal 50%

DarkUpwardDiagonal

指定从顶点到底点向左倾斜的对角线

DarkVertical

指定垂直线的两边夹角比Vertical 50%

DashedDownwardDiagonal

指定虚线对角线,这些对角线从顶点到底点向右倾斜

DashedHorizontal

指定虚线水平线

DashedUpwardDiagonal

指定虚线对角线,这些对角线从顶点到底点向左倾斜

DashedVertical

指定虚线垂直线

DiagonalBrick

指定具有分层砖块外观的阴影,它从顶点到底点向左倾斜

DiagonalCross

交叉对角线的图案

Divot

指定具有草皮层外观的阴影

DottedDiamond

指定互相交叉的正向对角线和反向对角线

DottedGrid

指定互相交叉的水平线和垂直线

ForwardDiagonal

从左上到右下的对角线的线条图案

Horizontal

水平线的图案

HorizontalBrick

指定具有水平分层砖块外观的阴影

LargeCheckerBoard

指定具有棋盘外观的阴影

LargeConfetti

指定具有五彩纸屑外观的阴影

LargeGrid

指定阴影样式 Cross

LightDownwardDiagonal

LightHorizontal

指定水平线,其两边夹角比 Horizontal 50%

LightUpwardDiagonal

指定从顶点到底点向左倾斜的对角线

LightVertical

指定垂直线的两边夹角比 Vertical 50%

Max

指定阴影样式 SolidDiamond

Min

指定阴影样式 Horizontal

NarrowHorizontal

指定水平线的两边夹角比阴影样式 Horizontal 75%

NarrowVertical

指定垂直线的两边夹角比阴影样式 Vertical 75%

OutlinedDiamond

指定互相交叉的正向对角线和反向对角线

Percent05

指定 5% 阴影前景色与背景色的比例为 5:100

Percent10

指定 10% 阴影前景色与背景色的比例为 10:100

Percent20

指定 20% 阴影前景色与背景色的比例为 20:100

Percent25

指定 25% 阴影前景色与背景色的比例为 25:100

Percent30

指定 30% 阴影前景色与背景色的比例为 30:100

Percent40

指定 40% 阴影前景色与背景色的比例为 40:100

Percent50

指定 50% 阴影前景色与背景色的比例为 50:100

Percent60

指定 60% 阴影前景色与背景色的比例为 60:100

Percent70

指定 70% 阴影前景色与背景色的比例为 70:100

Percent75

指定 75% 阴影前景色与背景色的比例为 75:100

Percent80

指定 80% 阴影前景色与背景色的比例为 80:100

Percent90

指定 90% 阴影前景色与背景色的比例为 90:100

Plaid

指定具有格子花呢材料外观的阴影

Shingle

指定带有对角分层鹅卵石外观的阴影,它从顶点到底点向右倾斜

SmallCheckerBoard

指定带有棋盘外观的阴影

SmallConfetti

指定带有五彩纸屑外观的阴影

SmallGrid

指定互相交叉的水平线和垂直线,其两边夹角比阴影样式 Cross 50%

SolidDiamond

指定具有对角放置的棋盘外观的阴影

Sphere

指定具有球体彼此相邻放置的外观的阴影

Trellis

指定具有格架外观的阴影

Vertical

垂直线的图案

Wave

指定由代字号“~”构成的水平线

Weave

指定具有织物外观的阴影

WideDownwardDiagonal

指定从顶点到底点向右倾斜的对角线

WideUpwardDiagonal

指定从顶点到底点向左倾斜的对角线

ZigZag

指定由 Z 字形构成的水平线

原文的例子不怎么样,似乎作者并不知道如何使用利用整数创建枚举类型成员,自己写了一个,直接上代码:

using System;

using System.Windows.Forms;

using System.Drawing;

using System.Drawing.Drawing2D;

 

namespace LearnWindows

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

            for (int i = 0; i < 53; i++)

            {

                HatchStyle hs = (HatchStyle)i;

                comboBox1.Items.Add(hs);

            }

            button1.BackColor = Color.Blue;

            button2.BackColor = Color.Yellow;

            comboBox1.SelectedIndex = 0;

        }

 

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

        {

            Fill();

        }

 

        private void Fill()

        {

            HatchStyle hs = (HatchStyle)(comboBox1.SelectedIndex);

            HatchBrush hb = new HatchBrush(hs, button1.BackColor, button2.BackColor);

            Graphics gr = pictureBox1.CreateGraphics();

            gr.FillRectangle(hb, pictureBox1.ClientRectangle);

            hb.Dispose();

            gr.Dispose();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            ChangeButtonColor(sender);

            Fill();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            ChangeButtonColor(sender);

            Fill();

        }

 

        private void ChangeButtonColor(object sender)

        {

            Button b = sender as Button;

            ColorDialog cd = new ColorDialog();

            if (cd.ShowDialog(this) == DialogResult.OK)

                b.BackColor = cd.Color;

        }

    }

}

运行效果如下:

Graphics Programming with GDI+ 学习笔记(五) - Castor - 趁年轻,多折腾

 还有一个:

Graphics Programming with GDI+ 学习笔记(五) - Castor - 趁年轻,多折腾

 有趣的是,并没有在枚举中看到MaxMin两种枚举类型,不知道是什么原因。

  评论这张
 
阅读(971)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017