如何从System.Windows.SystemColors.WindowTextBrushKey更改为字符串颜色名称?

时间:2019-07-18 11:12:27

标签: c# wpf systemcolors high-contrast

是否可以通过WPF代码后面的 System.Windows.SystemColors.WindowTextBrushKey 获取诸如红色,黑色等颜色名称?

       string color = "Black";
       if (System.Windows.SystemParameters.HighContrast)
       {                    
          color = System.Windows.SystemColors.WindowTextBrushKey; // I want to get color from this value
       }

1 个答案:

答案 0 :(得分:0)

这取决于。 SystemColors.WindowTextBrush将给您Brush。然后,您可以检查其字符串表示形式是否与Brushes类的静态属性返回的任何Brushes匹配:

string color = "Black";
if (System.Windows.SystemParameters.HighContrast)
{
    System.Windows.Media.Brush brush = System.Windows.SystemColors.WindowTextBrush;
    string s = brush.ToString();
    color = typeof(System.Windows.Media.Brushes).GetProperties()
        .FirstOrDefault(p => p.GetValue(null)?
        .ToString() == s)?
        .Name;
}