System.Drawing.Color
aとaSystem.Windows.Media.Color
が同じ色を表すかどうかをテストする方法は?
私は試した
colour1 == colour2
しかし、エラーが発生します
演算子「==」は、「System.Drawing.Color」および「System.Windows.Media.Color」タイプのオペランドには適用できません。
2つのオプションがあります:
ここで説明するタイプから別のタイプに変換してから、「==」演算子を使用します。
個々のコンポーネントを比較します。それらの両方がバイトとしてR、G、B、Aプロパティを持っているので、あなたは簡単に行うことができます:
bool ColorsEqual (System.Drawing.Color c1, System.Windows.Media.Color c2)
{
return c1.R == c2.R && c1.G == c2.G
&& c1.B == c2.B && c1.A == c2.A;
}
System.Windows.Media.Color に変換する System.Drawing.Color への拡張メソッドを作成し、System.Windows.Media.Color 型で比較できます。
public static System.Windows.Media.Color ToMediaColor(this System.Drawing.Color color)
{
return System.Windows.Media.Color.FromArgb(color.A, color.R, color.G, color.B);
}