日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET中颜色的转换方法总结

發(fā)布時間:2024/4/11 asp.net 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET中颜色的转换方法总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1,AGRB字符串"#FF00AFDB"轉(zhuǎn)Color

法一:System.Drawing.ColorTranslator類

Color color = ColorTranslator.FromHtml("#FF00AFDB");
ColorTranslator還可以將Color轉(zhuǎn)成Html的顏色代碼,但是Alpha值將會丟失,如"#FF00AFDB"將會變成"#00AFDB"

法二:System.Drawing.ColorConverter類

ColorConverter colorConverter = new ColorConverter();
Color color = (Color)colorConverter.ConvertFromString("#FF00AFDB");
備注:對于WPF,對應(yīng)的是System.Windows.Media.ColorConverter,ConvertFromString也變成了靜態(tài)方法
Color color = (Color)ColorConverter.ConvertFromString("#FF00AFDB");

法三:將"#FF00AFDB"轉(zhuǎn)換成int型的ARGB數(shù)字,再利用構(gòu)造函數(shù)構(gòu)建

public static Color ToColor(this string colorName) {??? if (colorName.StartsWith("#"))
??????? colorName = colorName.Replace("#", string.Empty);
??? int v = int.Parse(colorName, System.Globalization.NumberStyles.HexNumber);
??? return new Color() {
??????? A = Convert.ToByte((v >> 24) & 255),
??????? R = Convert.ToByte((v >> 16) & 255),
??????? G = Convert.ToByte((v >> 8) & 255),
??????? B = Convert.ToByte((v >> 0) & 255)
??? };
}
做成了擴展方法,之后這樣使用
Rectangle rectangle = new Rectangle();
rectangle.Fill = new SolidColorBrush("#FFF5F5F5".ToColor());

2,已知顏色的名字創(chuàng)建Color,如red,green等

Color color = Color.FromName("red");

3,不知道顏色的名字,可以用系統(tǒng)定義的顏色,如下面幾種方式


Color color = Color.FromKnownColor(KnownColor.ActiveBorder);
Color color = Color.Red;
Color color = SystemColors.ButtonFace;

4,Color轉(zhuǎn)Int32


看到這里你可能要問了,Color轉(zhuǎn)int有啥用啊?其實如果你在用一些現(xiàn)有的圖像庫的時候,它們經(jīng)常將Color表現(xiàn)為一個int值。
在這種情況下,ARGB值是通過其AARRGGBB的byte的順序用32位int表現(xiàn)的。這里我們可以做如下轉(zhuǎn)換:
public static int ToArgb(this Color color) {
??? int argb = color.A << 24;
??? argb += color.R << 16;
??? argb += color.G << 8;
??? argb += color.B;
??? return argb;
}
以下是這兩個方法的一個綜合應(yīng)用:
Rectangle rectangle = new Rectangle();
SolidColorBrush scb = new SolidColorBrush();
scb.Color = "#FFF5F5F5".ToColor();
rectangle.Fill = scb;
MessageBox.Show(scb.Color.ToArgb().ToString());

轉(zhuǎn)載于:https://www.cnblogs.com/xiashengwang/archive/2013/01/17/2864858.html

總結(jié)

以上是生活随笔為你收集整理的.NET中颜色的转换方法总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。