轉(zhuǎn)帖|其它|編輯:郝浩|2011-04-18 13:21:45.000|閱讀 762 次
概述:在Silverlight的System.Windows.Media中沒有ColorConverter類,而有些顏色并不都是用ARGB表示的,比如"Red"等。所以寫一個ARGB到Color的轉(zhuǎn)換類有一定的局限性,于是便借用XAML進(jìn)行轉(zhuǎn)換。具體轉(zhuǎn)換性能就沒有進(jìn)行測試了,反正用的地方不是很多,能轉(zhuǎn)就很好。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在Silverlight的System.Windows.Media中沒有ColorConverter類,而有些顏色并不都是用ARGB表示的,比如"Red"等。所以寫一個ARGB到Color的轉(zhuǎn)換類有一定的局限性,于是便借用XAML進(jìn)行轉(zhuǎn)換。具體轉(zhuǎn)換性能就沒有進(jìn)行測試了,反正用的地方不是很多,能轉(zhuǎn)就很好。
public class ColorConverter
{
public static Color ConvertFromString(string colorString)
{
Color color;
try
{
Line line = (Line)XamlReader.Load( "<Line xmlns=\"//schemas.microsoft.com/winfx/2006/xaml/presentation\" Fill=\"" + colorString + "\" />");
color = (Color)line.Fill.GetValue(SolidColorBrush.ColorProperty);
}
catch
{
color = new Color();
}
return color;
}
}
測試一下:
var color = ColorConverter.ConvertFromString("red");
MessageBox.Show(color.ToString());
color = ColorConverter.ConvertFromString("#CC0000FF");
MessageBox.Show(color.ToString());
color = ColorConverter.ConvertFromString("#00FF00");
MessageBox.Show(color.ToString());
// 錯誤的話會成為黑色#00000000
color = ColorConverter.ConvertFromString("asasas");
MessageBox.Show(color.ToString());
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn