【问题标题】:How do i get the color from Rectangle in fill property?如何从填充属性中的矩形获取颜色?
【发布时间】:2018-11-19 09:53:29
【问题描述】:

我知道如何从 WPF 控件设置填充。

Rectangle a = new Rectangle()
a.Fill = Brushes.Red;

但我无法获得颜色。

我想要这样的代码。

string color = a.Fill; // Red
var color2 = a.Fill(T); // Brushes.Red
var color3 = a.Fill; // other object

【问题讨论】:

  • var color = (a.Fill as SolidColorBrush)?.Color;

标签: wpf colors fill rectangles converters


【解决方案1】:

如果我对您的理解正确,您希望将Rectangle.Fill 属性中的颜色名称作为字符串(在 xaml 中键入的方式)?

我已经为这个here找到了解决方案

在您的代码中应该如下所示:

      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”。

【讨论】:

  • 谢谢@Azzarrel :) 我选择你的答案。
猜你喜欢
  • 1970-01-01
  • 2012-07-03
  • 2012-02-14
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
相关资源
最近更新 更多