Если я вас правильно понимаю, вы хотите получить название цвета в вашем Rectangle.Fill
свойстве в виде строки (как вы бы его набрали в xaml)?
Я нашел решение для этого здесь
в вашем коде это должно выглядеть так:
SolidColorBrush brush = (SolidColorBrush)a.Fill;
Color c = brush.Color;
var colorname = (from p in typeof(System.Drawing.Color).GetProperties()
where p.PropertyType.Equals(typeof(System.Drawing.Color))
let value = (System.Drawing.Color)p.GetValue(null, null)
where value.R == c.R &&
value.G == c.G &&
value.B == c.B &&
value.A == c.A
select p.Name).DefaultIfEmpty("unknown").First();
Для моего прямоугольника <Rectangle Name="a" Fill="Aqua"></Rectangle>
строка вернет "Aqua".