天天看點

WPF Color、String、Brush轉換

版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結和本聲明。 

//int 轉 System.Windows.Media.Color
private System.Windows.Media.Color ToColor(int rgba)
{
return new System.Windows.Media.Color()
{
    A = Convert.ToByte((rgba >> 24) & 255),
    R = Convert.ToByte((rgba >> 16) & 255),
    G = Convert.ToByte((rgba >> 8) & 255),
    B = Convert.ToByte((rgba >> 0) & 255)
};
}
 
//作用域:using System.Windows.Media;
 
//由整形(int)轉成Color的Argb值  A:透明值,R:紅色值, G:綠色值, B:藍色值
public static Color RgbToColor(int color)
{
    return Color.FromArgb((byte)0xff, (byte)((color & 0xff0000) >> 16), (byte)((color & 0x00ff00) >> 8), (byte)(color & 0x0000ff));
}
 
//整形ARGB值轉為Color值
 
Color cFrontColor = Color.FromArgb((byte)FrontColorA, (byte)style.nFrontColor_R, (byte)style.nFrontColor_G, (byte)style.nFrontColor_B);
 
 
//Color 值轉為整形(int)
public int ToArgb(Color color)
{
    int argb = color.A << 24;
    argb += color.R << 16;
    argb += color.G << 8;
    argb += color.B;
    return argb;
}
 
 
//Color 值轉R、G、B值
int fcolorR = (byte)((myRollText.FrontColor & 0xff0000) >> 16);
int fcolorG = (byte)((myRollText.FrontColor & 0x00ff00) >> 8);
int fcolorB = (byte)(myRollText.FrontColor & 0x0000ff);
 
 
//整形(int)值轉 SolidColorBrush類型
Color cForeBrush = RgbToColor(myRollText.FrontColor);
rollvm.RollShowVM.ForeBrush = new SolidColorBrush(cForeBrush);
 
//Brush 轉 Color            System.Windows.Media.Brush 轉S ystem.Windows.Media.Color
//先将Brush轉成string,再轉成Color
Brush brush = ((Border)e.Source).Background;
Color c = (Color)ColorConverter.ConvertFromString(brush.ToString());
 
//将Brush轉成SolidColorBrush,再取Color
Color color= ((SolidColorBrush)CadColor.Background).Color;
 
//Color 轉 Brush
Brush brush = new SolidColorBrush(color);
 
//Brush 轉 SolidColorBrush
SolidColorBrush ForeBrush = (SolidColorBrush)ci.ExSelectedBrush;
 
//String 轉換成 Color
Color color = (Color)ColorConverter.ConvertFromString(string);
 
//String 轉換成 Brush
BrushConverter brushConverter = new BrushConverter();
Brush brush = (Brush)brushConverter.ConvertFromString(string);
 
//System.Windows.Media.Color 轉 System.Windows.Media.Brush
 
Color fcolor = (Color)ColorConverter.ConvertFromString(wndset.FonzColor.ToString());
var ForeColor = System.Drawing.Color.FromArgb(fcolor.A, fcolor.R, fcolor.G, fcolor.B);
 
//System.Windows.Media.Brush 賦初值    
Brush forColor = new SolidColorBrush(System.Windows.Media.Color.FromArgb((byte)255, (byte)0,(byte)255,(byte)0));