Windows phone 8 如何以编程方式设置文本块前景十六进制颜色
我必须实用地使用文本块的前景十六进制颜色。它不起作用。请帮助我 我试过这个例子Windows phone 8 如何以编程方式设置文本块前景十六进制颜色,windows-phone-8,Windows Phone 8,我必须实用地使用文本块的前景十六进制颜色。它不起作用。请帮助我 我试过这个例子 txtHome.Foreground = new SolidColorBrush(Colors.Red); 但我想使用十六进制颜色代码,而不是使用color.red等 试试这个: public class ColorConverter { public static SolidColorBrush GetColorFromHexa(string hexaColor) {
txtHome.Foreground = new SolidColorBrush(Colors.Red);
但我想使用十六进制颜色代码,而不是使用color.red等 试试这个:
public class ColorConverter
{
public static SolidColorBrush GetColorFromHexa(string hexaColor)
{
return new SolidColorBrush(
Color.FromArgb(
Convert.ToByte(hexaColor.Substring(1, 2), 16),
Convert.ToByte(hexaColor.Substring(3, 2), 16),
Convert.ToByte(hexaColor.Substring(5, 2), 16),
Convert.ToByte(hexaColor.Substring(7, 2), 16)
)
);
}
}
然后你可以像这样使用它:
txtHome.Foreground = ColorConverter.GetColorFromHexa(("#FFF0F0F0"));
您可以使用此函数将十六进制颜色转换为颜色值,然后可以在textblock上进行设置 公共颜色转换器StringToColor(字符串十六进制) {
hex = hex.Replace("#", "");
byte a = 255;
byte r = 255;
byte g = 255;
byte b = 255;
int start = 0;
//handle ARGB strings (8 characters long)
if (hex.Length == 8)
{
a = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
start = 2;
}
//convert RGB characters to bytes
r = byte.Parse(hex.Substring(start, 2), System.Globalization.NumberStyles.HexNumber);
g = byte.Parse(hex.Substring(start + 2, 2), System.Globalization.NumberStyles.HexNumber);
b = byte.Parse(hex.Substring(start + 4, 2), System.Globalization.NumberStyles.HexNumber);
return Color.FromArgb(a, r, g, b);
}
颜色1=转换为颜色(“F0A30A”);
txtHome.前台=新的SolidColorBrush(color1);创建下面提到的方法
public SolidColorBrush GetColorFromHexa(string hexaColor)
{
return new SolidColorBrush(
Color.FromArgb(
Convert.ToByte(hexaColor.Substring(1, 2), 16),
Convert.ToByte(hexaColor.Substring(3, 2), 16),
Convert.ToByte(hexaColor.Substring(5, 2), 16),
Convert.ToByte(hexaColor.Substring(7, 2), 16)
)
);
}
并将其用作
image.Background = GetColorFromHexa("#FF7b9a30");
虽然有些答案会产生不必要的字符串,但我建议只使用最有效的:
var brush=new SolidColorBrush(Color.FromArgb(0xFF, 0xD0, 0x20, 0x30));
我刚刚使用该方法直接转换颜色的十六进制表示。第一个参数是alpha或opacity,您可以始终使用255/0xFF来指定完全不透明度。然后,它只提供表示颜色的3个字节,它们的顺序与在颜色的普通十六进制表示中显示的顺序相同。在上面的示例中:“D02030”
此外,您可以考虑创建一个表示“代码> SolidColorBrush < /代码>的可重用资源,并将其添加到
<SolidColorBrush x:Key="myBrush" Color="#D02030" />
非常感谢你,普拉文
<SolidColorBrush x:Key="myBrush" Color="#D02030" />
txtHome.Foreground = App.Current.Resources["myBrush"] as SolidColorBrush;