Struct Brush

GoDiagram®
v10.0.12
by Northwoods Software®

A Brush holds color information and describes how to draw the inside of a Shape or the stroke of a shape or a TextBlock or the background of any GraphObject.

Namespace: Northwoods.Go
Assembly: Northwoods.GoDiagram.Avalonia.dll
Syntax
[TypeConverter(typeof(BrushTypeConverter))]
[JsonConverter(typeof(BrushJsonConverter))]
public struct Brush
Remarks

A Brush contains a Paint which describes how the color(s) will be drawn.

Constructors

Brush(Paint)

Constructs a Brush with the given Paint.

Declaration
public Brush(Paint paint)
Parameters
Type Name Description
Paint paint

the Paint for this Brush

Brush(string, (float, string)[])

Constructs a Brush with a GradientPaint.

Declaration
public Brush(string painttype, (float, string)[] stops)
Parameters
Type Name Description
string painttype

a gradient paint type, either "linear" or "radial"

(float, string)[] stops

an array of tuples mapping fractional stops to color strings

Brush(string)

Constructs a Brush with a SolidPaint.

Declaration
public Brush(string color)
Parameters
Type Name Description
string color

a color string

Properties

Paint

This read-only property returns the Paint this Brush uses for drawing.

Declaration
public readonly Paint Paint { get; }
Property Value
Type Description
Paint

Methods

Darken(double, ColorSpace)

Modifies all colors within this Brush, darkening them by some fraction.

Declaration
public Brush Darken(double fraction = 0.2, ColorSpace mode = ColorSpace.Lab)
Parameters
Type Name Description
double fraction

Fraction to darken the colors by. Defaults to 0.2, must be between 0 and 1 (inclusive).

ColorSpace mode

Color space to use for adjusting. Must be Lab or HSL, defaults to Lab.

Returns
Type Description
Brush

A new Brush with modified color values.

Darken(object)

This is a convenience method for Darken(string, double, ColorSpace) that can be used as a Converter.

Declaration
public static object Darken(object color)
Parameters
Type Name Description
object color
Returns
Type Description
object

Darken(string, double, ColorSpace)

This static function takes a color and darkens it.

Declaration
public static string Darken(string color, double fraction = 0.2, ColorSpace mode = ColorSpace.Lab)
Parameters
Type Name Description
string color

A valid color string

double fraction

Fraction to darken the color by. Defaults to 0.2, must be between 0 and 1 (inclusive).

ColorSpace mode

Color space to use for adjusting. Must be Lab or HSL, defaults to Lab.

Returns
Type Description
string

A string for the darkened color in RGBA or HSLA.

Equals(object)

Indicates whether the given Brush is equal to this Brush.

Declaration
public override bool Equals(object obj)
Parameters
Type Name Description
object obj

The Brush to compare to the current Brush.

Returns
Type Description
bool

True if the two Brushes have identical Color and Paint values, false otherwise.

Overrides

GetHashCode()

Creates a hash code for the Brush.

Declaration
public override int GetHashCode()
Returns
Type Description
int

A hash code for the current Brush structure.

Overrides

IsDark()

Determines whether this Brush is "dark."

Declaration
public bool IsDark()
Returns
Type Description
bool

IsDark(string)

This static function takes a color and determines whether it is "dark." Does not account for transparency.

Declaration
public static bool IsDark(string color)
Parameters
Type Name Description
string color

A valid color string

Returns
Type Description
bool
Examples
myDiagram.NodeTemplate =
  new Node("Auto")
    .Add(
      new Shape { Figure = "RoundedRectangle", StrokeWidth = 0 }
        .Bind("Fill", "Color"),
      new TextBlock { Margin = 8 }
        .Bind("Stroke", "ColorStr", (c, _) => {
          // Dark nodes use white text, light nodes use black text
          return Brush.IsDark((string)c) ? "white" : "black";
        })
        .Bind("Text", "Key")
    );

IsValidColor(string)

This static function returns true if a given color string is well-formed for drawing.

Declaration
public static bool IsValidColor(string color)
Parameters
Type Name Description
string color

A color string to validate.

Returns
Type Description
bool

Lighten(double, ColorSpace)

Modifies all colors within this Brush, lightening them by some fraction.

Declaration
public Brush Lighten(double fraction = 0.2, ColorSpace mode = ColorSpace.Lab)
Parameters
Type Name Description
double fraction

Fraction to lighten the colors by. Defaults to 0.2, must be between 0 and 1 (inclusive).

ColorSpace mode

Color space to use for adjusting. Must be Lab or HSL, defaults to Lab.

Returns
Type Description
Brush

A new Brush with modified color values.

Lighten(object)

This is a convenience method for Lighten(string, double, ColorSpace) that can be used as a Converter.

Declaration
public static object Lighten(object color)
Parameters
Type Name Description
object color
Returns
Type Description
object

Lighten(string, double, ColorSpace)

This static function takes a color and lightens it.

Declaration
public static string Lighten(string color, double fraction = 0.2, ColorSpace mode = ColorSpace.Lab)
Parameters
Type Name Description
string color

A valid color string.

double fraction

Fraction to lighten the colors by. Defaults to 0.2, must be between 0 and 1 (inclusive).

ColorSpace mode

Color space to use for adjusting. Must be Lab or HSL, defaults to Lab.

Returns
Type Description
string

A string for the lightened color in RGBA or HSLA.

Mix(string, string, double)

This static function takes two colors and mixes them together, using the (optionally) specified amount of the second color.

Declaration
public static string Mix(string color1, string color2, double fraction = 0.5)
Parameters
Type Name Description
string color1

A valid color string.

string color2

Another valid color string to mix.

double fraction

Fraction specifying how much color2 to mix into color1. Defaults to .5, must be between 0 and 1 (inclusive).

Returns
Type Description
string

RandomColor(int, int)

This static function can be used to generate a random color.

Declaration
public static string RandomColor(int min = 128, int max = 255)
Parameters
Type Name Description
int min

An int between 0 and 255, defaults to 128.

int max

An int between 0 and 255, defaults to 255.

Returns
Type Description
string

A color value in # hexadecimal format.

ToString()

Returns a string representation of the Brush.

Declaration
public override string ToString()
Returns
Type Description
string

A string representation of the current Brush.

Overrides

Operators

operator ==(Brush, Brush)

Compares if two Brushes are equal by checking their Paints.

Declaration
public static bool operator ==(Brush left, Brush right)
Parameters
Type Name Description
Brush left
Brush right
Returns
Type Description
bool

implicit operator Brush(string)

Implicitly converts a string to a Brush.

Declaration
public static implicit operator Brush(string c)
Parameters
Type Name Description
string c
Returns
Type Description
Brush

operator !=(Brush, Brush)

Compares if two Brushes are not equal by checking their Paints.

Declaration
public static bool operator !=(Brush left, Brush right)
Parameters
Type Name Description
Brush left
Brush right
Returns
Type Description
bool