我想使用以下习语之一在 C#(不是 XAML)中创建颜色:
Color transparentblue = TransparentColor(Brushes.Blue, 0.5); // 0.5 => 128
Color transparentblue = Brushes.Blue.SetAlpha(0.5); // again, 0.5 => 128
我想摆脱对Color.FromArgb()
设计师不友好的语法。我也让它在静态类中使用静态方法,但写作有点沉重:
public static class ColorGenerators {
public static Color GetTransparentColor (Color color, double opacity) {
byte op = (byte)(opacity*255);
return Color.FromArgb(op, color.R, color.G, color.B);
}
}
// To be used as
var transparentblue = ColorGenerators.GetTransparentColor(Color.Blue, 0.5);
我仍然更喜欢扩展方法方法,在我看来,我们公司很快就会从类似于这个问题中描述的方法中受益,所以我想知道它们会是什么样子(鉴于 Color 是一个结构,而不是一个类)。