如何在c#中更改对象的背景颜色(由observablecollection索引引用)?
for (int i = 0; i < numTapeSlots; i++)
{
if (t.tapeLocation == mainTapes[i].tapeLocation)
{
mainTapes[i] = t;
mainTapes[i].Background = "light red";
}
}
仅在符合条件的情况下更改特定对象。
答案 0 :(得分:3)
从Control
类继承的任何类都具有Background
属性,这是Brush
的类型...基本上,您只能分配一个Brush
对象它。如果您希望画笔为纯色,可以使用SolidColorBrush
。
在你的情况下,你会想做:
mainTapes[i].Background = new SolidColorBrush(...);
现在,由于Colors
静态类不包含“Light Red”的静态属性,因此您始终可以使用Color.FromArgb
,Color.FromRgb
等方法。例如:
mainTapes[i].Background = new SolidColorBrush(Color.FromRgb(255,100,100));
我可以继续谈论如何创造合适的颜色,但是你明白了......