以编程方式设置TextBlock前景色

75

在Windows Phone 7中有没有办法做到这一点?

我可以在我的C#代码中引用TextBlock,但我不知道如何设置它的前景色。

myTextBlock.Foreground = 
//not a clue...

感谢

4个回答

153
 textBlock.Foreground = new SolidColorBrush(Colors.White);

63

前景需要一个画刷,所以您可以使用

textBlock.Foreground = Brushes.Navy;

如果您想使用来自RGBARGB的颜色,则

textBlock.Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromArgb(100, 255, 125, 35)); 
或者
textBlock.Foreground = new System.Windows.Media.SolidColorBrush(Colors.Navy); 

十六进制获取颜色

textBlock.Foreground = new System.Windows.Media.SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFDFD991")); 

印度程序员 - 谢谢!告诉我,使用 Brushes 类应该使用哪个命名空间? - user818700
在最后一个例子中,您还需要在括号中使用System.Windows.Media.Colors.Navy,例如 TextBlock.Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red); 当然,如果您没有在文件开头引用该命名空间。 - Bibaswann Bandyopadhyay
有没有可用的“FromHex()”函数? - Vahid
尝试使用HEX示例。出现错误CS0120,需要非静态字段、方法或属性“TypeConverter.ConvertFromString(string)”的对象引用。 - barrypicker
太好了,谢谢你还展示了如何使用十六进制值!! - Chef Pharaoh

14

您可以使用Brushes.White来设置前景色。

myTextBlock.Foreground = Brushes.White;

Brushes类位于System.Windows.Media命名空间中。

或者在光标停留在未知类名上时,按下Ctrl+.即可自动添加using指令。


1
谢谢!想要访问Brushes类,应该使用哪个命名空间?好像找不到它... - user818700

11

获取十六进制颜色值的颜色。

using System.Windows.Media;

Color color = (Color)ColorConverter.ConvertFromString("#FFDFD991");

然后设置前景色。

textBlock.Foreground = new System.Windows.Media.SolidColorBrush(color); 

这个变体也可以用来检查颜色,非常有用。+1: 如果 ((Color)ColorConverter.ConvertFromString(wpfComponent.Foreground.ToString()) == Colors.Red) { ... - Jeff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接