对不起,如果问题愚蠢,但我几乎没有C#经验。 对于我正在处理的项目,我想检查边框颜色是否为蓝色。
Position pos = new Position(x, y); // my custom class
Border b = (Border)FindName("b_"+ pos.X +"_"+ pos.Y); // get berder by name
// One of my fail attempts
bool isBlue = b.GetValue(SolidColorBrush.ColorProperty).ToString().Equals(Colors.Blue.ToString());
希望它是可行的。
// I set color to Border this way
Border b = new Border();
b.Background = new SolidColorBrush(Colors.WhiteSmoke);
小时谷歌没有给我任何足够简单的结果我可以使用。我发现最接近的是比较帖子。但是我的知识不足以适应它。欢迎任何帮助正确的方向。
答案 0 :(得分:3)
你可以做的是比较ARGB值,一个例子就是这个扩展名:
public static bool IsEqualTo(this Color color1, Color color2)
{
return color1.A == color2.A && color1.R == color2.R && color1.G == color2.G && color1.B == color2.B;
}
并像这样使用它:
bool isBlue = b.GetValue(SolidColorBrush.ColorProperty).IsEqualTo(Colors.Blue);