【发布时间】:2011-02-23 08:29:27
【问题描述】:
if (backBrush == SystemColors.ActiveCaption)
这失败了。说你不能比较画笔和颜色。
如何找到画笔的颜色?
【问题讨论】:
if (backBrush == SystemColors.ActiveCaption)
这失败了。说你不能比较画笔和颜色。
如何找到画笔的颜色?
【问题讨论】:
如果 backBrush 是 SolidColorBrush(根据您的尝试可能是这样),您可以使用:
if(((SolidColorBrush)backBrush).Color == SystemColors.ActiveCaption)
【讨论】:
如果画笔是 SolidBrush,您可以比较画笔的 Color 成员。像这样。
SolidBrush solidBrush = brush as SolidBrush;
if (solidBrush != null && solidBrush.Color == SystemColors.ActiveCaption)
{
// ....
}
以上内容适用于 WinForms,对于 WPF,您将使用 SolidColorBrush 而不是 SolidBrush。
【讨论】:
Brush 没有颜色。
您使用Brush 和 Color 进行填充/绘画等。
一些笔刷确实有颜色(HatchBrush 有两种),所以您需要转换为笔刷类型然后比较颜色:
((HatchBrush)backBrush).BackgroundColor == SystemColors.ActiveCaption
【讨论】:
SolidColorBrush)
您尝试过SystemBrushes 命名空间吗?
if (backBrush == SystemBrushes.ActiveCaption)
{...
【讨论】: