GDI 与WPF中的颜色简析

来源:互联网 发布:mac怎么卸载输入法 编辑:程序博客网 时间:2024/05/21 09:52

我们知道,颜色在界面表面中起着举足轻重的作用。让我们来分析一下GDI+与WPF中的颜色。

一、GDI+中:
Color位于System.Drawing命名空间下。
当我们需要使用某种颜色时,我们可以用以下几种方式:
(1)Color.FromArgb(alpha, red, green, blue) //alpha为不透明度0~255
(2)Color.FromArgb(red, green, blue) //此时alpha值始终为255,即不透明
(3)Color.FromKnownColor(KnownColor color)
(4)Color.FromName(string knownColorString)
(5)Color.FromSysIcv(int icv)
比如:
Color redAlpha50Percent = Color.FromArgb(128, 255, 0, 0); //半透明红色
Color redWithoutAlpha = Color.FromArgb(255, 0, 0); //红色(完全不透明)
Color redFromKnownColor = Color.FromKnownColor(KnownColor.Red);
Color redFromName = Color.FromName("Red");
比如用红色填充一个矩形:
graphics.FillRectangle(new SolidBrush(redFromKnownColor), 10, 10, 100, 40);
为了进行比较,我将有区别的静态方法用“ 代码 ”底色突出。
由于某些颜色“众所周知”,在各种环境和操作系统中均使用统一的字面说法,比如红色(Red),黑色(Black)等等。它们是在系统中已知(或者说是已经预先定义)的颜色。
这些常见的颜色如下图:

 

二、WPF中:
Color位于System.Windows.Media命名空间下。
由于WPF中有XAML,所以,我们分两种情况来描述:
1、当我们在XAML中使用颜色时,我们可以使用XAML的属性:
(1)〈object property="predefinedColor"/〉
predefinedColor为预定义颜色(见上图)

(2)〈object property="#rgb"/〉
(3)〈object property="#rrggbb"/〉
(4)〈object property="#argb"/〉
(5)〈object property="#aarrggbb"/〉
其中r,g,b分别为0~F的十六进制颜色值,a为0~F的十六进制值,用于表示Alpha数值(不透明度)。

(6)〈object property="sc# scA,scR,scG,scB"/〉
其中,sc# 为关键字,scA,scR,scG,scB为介于0.0~1.0的Single值。

(7)〈object property="ContextColor profileUri alphaValue,colorValue"/〉
其中,ContextColor为关键字,profileUri为icm文件的地址,后面是alpha值和颜色值。

原创粉丝点击