GDI+
文章平均质量分 58
Keep_Silence_
相信努力终将有回报。
展开
-
GDI+学习记录---前言
GDI+学习记录---前言 每次上QQ的时候(虽然自己平时不怎么上),总觉得他的界面UI写的很漂亮,也很想学习下他的界面是如何编写的,于是就有了这篇文章(或者这个系列)。以前用Delphi Pascal 零零碎碎的学过GDI+,但是没有完整的、系统的学习,这次打算把自己在学习GDI+过程中学到的知识给记录下来,增加自己的印象,俗话说的好,好记性不如烂笔头,本人深有此感。原创 2012-08-31 21:05:01 · 2022 阅读 · 0 评论 -
GDI+学习记录(16)-字体Font
字体,对于大部分人来说都不陌生,在文本编辑软件中(如 Word)字体是必不可少的,同样,在GDI+中,绘制字符串也是需要字体的。在介绍字体Font类的使用之前,先引入一些与其有关的类或者枚举: (1)字体系列 FontFamily: GDI+中将具有相同的样式成为字体系列,如我们常见的 “宋体”、“仿宋” 、“微软雅黑”、 “Arial”等。原创 2012-10-30 18:32:14 · 7931 阅读 · 0 评论 -
GDI+学习记录(15)-路径渐变画刷
同线性渐变画刷相比,路径渐变画刷的最大特点在于:线性渐变画刷的渐变方向比较单一(水平,垂直,固定角度),而路径渐变画刷的渐变方向是从路径中央到路径边缘,是一种呈发散状的渐变,所以在使用路径渐变画刷填充目标区域前,处理需要指定对象外,还要指定路径的中心点颜色以及路径边界的颜色。下面为路径渐变画刷的基本使用,构建一个中心点为红色的五角星: private void Form1_Paint原创 2012-10-29 13:37:02 · 4625 阅读 · 1 评论 -
GDI+学习记录(14)-线性渐变画刷之多色渐变
private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.Clear(Color.White); //定义渐变颜色数组 Color[] colors =原创 2012-10-29 13:08:05 · 3945 阅读 · 0 评论 -
GDI+学习记录(13)-线性渐变画刷 LinearGrandientBrush
线性渐变画刷的基本使用 Demo: private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.Clear(Color.White); Pen my原创 2012-09-21 12:17:20 · 2510 阅读 · 1 评论 -
GDI+学习记录(12)-纹理画刷TextureBrush的排列方式
在TextureBrush 类的构造函数的参数中,WrapMode 指定了画刷中基本图案的排列方式,GDI+ 的WrapMode 枚举提供了五种不同的排列方式: 具体的应用如下图所示: 使用上一章的金鱼图片进行填充,Demo: private void Form1_Paint(object sender, PaintEventArgs e)原创 2012-09-18 11:16:33 · 2646 阅读 · 0 评论 -
GDI+学习记录(11)- 纹理画刷 TextureBrush的基本使用
纹理画刷(TextureBrush)实际上就是将图片在目标区域进行平铺,同影线画刷(HatchBrush)类似,纹理画刷也是使用同样的基本图案在水平方向和垂直方向上进行一定顺序排列之后构成的画刷。不同的是,影线画刷使用的基本图案是由简单的点、线条构成的,其色彩也只有前景色和背景色。而纹理画刷使用的基本图案为导入的图片或导入图片的部分区域,色彩也是任意的。下为纹理画刷的基本使用Demo。Demo原创 2012-09-17 20:57:03 · 5359 阅读 · 0 评论 -
GDI+学习记录(10)- 影线画刷HatchBrush
影线画刷(HatchBrush)的基本使用: private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.Clear(Color.White); //构建第一种影线画刷原创 2012-09-17 19:47:46 · 6102 阅读 · 0 评论 -
GDI+学习记录(9)- 单色画刷 SolidBrush
单色画刷是五种画刷中最简单的一种,其由类 SolidBrush创建。创建的代码很简单,只用在创建过程中指明画刷的颜色即可。单身画刷主要用处体现在对图形区域的填充中,GDI+ 提供了以下几种填充函数,填充的时候主要把画刷对象作为参数即可,此处正好的体现出C#的完全的面向对象的思想。填充函数函数功能描述FillClosedCurve填充闭原创 2012-09-07 11:03:21 · 4994 阅读 · 0 评论 -
GDI+学习记录(8)- 画刷 Brush简介
画刷是用来填充区域的,在GDI+ 中,画刷分为五种: 单色画刷,也叫固体画刷(SolidBrush), 影线画刷(HatchBrush),纹理画刷(TextureBrush),线型渐变画刷(LinearGradientBrush),路径渐变画刷(PathGradientBrush)。这五种画刷全部都是由其共同的基类 Brush 类派生而来的,与画笔笔筒,画刷是用来填充区域的,所以画刷是没有宽度和长原创 2012-09-06 18:30:35 · 2249 阅读 · 0 评论 -
GDI+学习记录(7)- 直线连接点 LineJoin
LineJoin 枚举值及其含义 例程效果图: 例程: private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.Clear(Color.White);原创 2012-09-04 11:01:36 · 2761 阅读 · 0 评论 -
GDI+学习记录(6)- 画笔转换 Transform
private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); g.Clear(Color.White); Pen p = new Pen(Color.Red,6);原创 2012-09-02 12:41:36 · 2294 阅读 · 0 评论 -
GDI+学习记录(4)-画笔对齐 PenAlignment
由于画笔是有宽度的,相对于绘制线条来说,画笔宽度方向上的中心位置是由其对齐方式来决定的,在GDI+中,画笔对齐方式是有枚举 PenAlignment 来描述的,PenAlignment 定义表如下所示:成员说明Center指定 Pen 对象以理论的线条为中心。Inset指定 Pen 被定位于理论的线条内。Outset指定将 P原创 2012-09-02 12:03:36 · 2825 阅读 · 0 评论 -
GDI+学习记录(5)- 画笔线帽 LineCap
线帽”(LineCap),顾名思义,就是线条首尾的外观,在默认的情况下,使用画笔绘制出的直线,其起点和终点都是相同的---方形。在GDI+中,可以通过修改画笔的 StartCap 属性来设置起点的线帽,通过修改EndCap来设置终点的线帽。不同外观的线帽是有LineCap 枚举列出的,其定义如下表:成员说明AnchorMask指定用于检查线帽是否为锚头帽的掩原创 2012-09-02 12:37:55 · 6820 阅读 · 1 评论 -
GDI+学习记录(2)-画笔 Pen
画笔(Pen)用于描述图形的轮廓,GDI+的画笔除了有常见的色彩和宽度属性外,还添加了其他的属性,如对齐方式、线帽、变换方式等高级属性。 private void button1_Click(object sender, EventArgs e) { //创建Graphics对象 Graphics g = this.Crea原创 2012-09-01 10:55:22 · 1915 阅读 · 0 评论 -
GDI+学习记录(3)-画笔线型 DashStyle
通过使用Pen 类的属性DashStyle 可以设置或者访问画笔的线型,GDI+ 在 DashStyle 枚举中提供了5中常见的画笔线型风格,DashStyle 不同的枚举值及其含义如下表所示: DashStyle 不同的枚举值 成员 说明Solid指定实线Dash指定由划线段组成的直线原创 2012-09-01 11:05:18 · 11609 阅读 · 1 评论 -
GDI+学习记录(1)-Graphics
GDI+的核心 Graphics Graphics类是GDI+的核心,其能够完成大部分的绘图、文本输出、几何图形的填充、坐标的转换等操作,在功能上,其与GDI中的DC(设备环境句柄 Device Context)是一致的,可以把其理解为一张绘图所需的“图纸”,各种绘图操作都是在这张“图纸”上进行的,这里笔者把其称为“绘图平面”。 Graphics类的构造方法有如下几种原创 2012-09-01 10:14:18 · 2291 阅读 · 0 评论 -
GDI+学习记录(17)-获取系统已安装的所有字体
private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.Clear(Color.White); g.SmoothingMode = SmoothingMode.AntiAlias;原创 2012-10-30 20:05:54 · 2066 阅读 · 0 评论