public override Color this[int index]
{
get{
Color c = Inner[index];
if(Modifiers==null)return c;
double A = c.A,R = c.R,G = c.G,B = c.B;
foreach(BlockModifier mod in Modifiers)
{
if(mod==null)continue;
if(mod.LowerIndex <= index && index <= mod.UpperIndex)
{
A *= mod.A;
R *= mod.R;
G *= mod.G;
B *= mod.B;
}
}
return Color.FromArgb((int)A,(int)R,(int)G,(int)B);
}
}