Remove readonly keyword from FromHexString in Color (whoops!), add docs to Color.
This commit is contained in:
@@ -147,11 +147,28 @@ namespace Voile
|
|||||||
public static readonly Color Yellow = new(0xFFFF00);
|
public static readonly Color Yellow = new(0xFFFF00);
|
||||||
public static readonly Color YellowGreen = new(0x9ACD32);
|
public static readonly Color YellowGreen = new(0x9ACD32);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Red component of this <see cref="Color"/>.
|
||||||
|
/// </summary>
|
||||||
public byte R { get; set; }
|
public byte R { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Green component of this <see cref="Color"/>.
|
||||||
|
/// </summary>
|
||||||
public byte G { get; set; }
|
public byte G { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Blue component of this <see cref="Color"/>.
|
||||||
|
/// </summary>
|
||||||
public byte B { get; set; }
|
public byte B { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Alpha component of this <see cref="Color"/>.
|
||||||
|
/// </summary>/// <summary>
|
||||||
|
/// Gets the color as a 32-bit ARGB integer in the format 0xAARRGGBB.
|
||||||
|
/// </summary>
|
||||||
public byte A { get; set; } = 255;
|
public byte A { get; set; } = 255;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the color as a 32-bit ARGB integer in the format 0xAARRGGBB.
|
||||||
|
/// </summary>
|
||||||
public int Argb
|
public int Argb
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -165,6 +182,13 @@ namespace Voile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Color"/> struct using float RGB(A) values between 0 and 1.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="r">The red component (0.0 to 1.0).</param>
|
||||||
|
/// <param name="g">The green component (0.0 to 1.0).</param>
|
||||||
|
/// <param name="b">The blue component (0.0 to 1.0).</param>
|
||||||
|
/// <param name="a">The alpha component (0.0 to 1.0), default is 1.0 (fully opaque).</param>
|
||||||
public Color(float r, float g, float b, float a = 1.0f)
|
public Color(float r, float g, float b, float a = 1.0f)
|
||||||
{
|
{
|
||||||
R = (byte)Math.Clamp(r * 255, 0, 255);
|
R = (byte)Math.Clamp(r * 255, 0, 255);
|
||||||
@@ -173,6 +197,13 @@ namespace Voile
|
|||||||
A = (byte)Math.Clamp(a * 255, 0, 255);
|
A = (byte)Math.Clamp(a * 255, 0, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Color"/> struct using byte RGB(A) values.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="r">The red component (0 to 255).</param>
|
||||||
|
/// <param name="g">The green component (0 to 255).</param>
|
||||||
|
/// <param name="b">The blue component (0 to 255).</param>
|
||||||
|
/// <param name="a">The alpha component (0 to 255), default is 255 (fully opaque).</param>
|
||||||
public Color(byte r, byte g, byte b, byte a = 255)
|
public Color(byte r, byte g, byte b, byte a = 255)
|
||||||
{
|
{
|
||||||
R = r;
|
R = r;
|
||||||
@@ -181,6 +212,13 @@ namespace Voile
|
|||||||
A = a;
|
A = a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="Color"/> struct using a hexadecimal value.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="hex">
|
||||||
|
/// A 24-bit (RRGGBB) or 32-bit (AARRGGBB) integer representing the color.
|
||||||
|
/// Alpha is assumed to be 255 if not included.
|
||||||
|
/// </param>
|
||||||
public Color(int hex)
|
public Color(int hex)
|
||||||
{
|
{
|
||||||
A = 255; // Default alpha to 255 if not provided
|
A = 255; // Default alpha to 255 if not provided
|
||||||
@@ -193,7 +231,13 @@ namespace Voile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static readonly Color FromHexString(string hex)
|
/// <summary>
|
||||||
|
/// Parses a color from a hexadecimal string in the format "#RRGGBB" or "#AARRGGBB".
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="hex">The hex string representing the color.</param>
|
||||||
|
/// <returns>A <see cref="Color"/> instance parsed from the string.</returns>
|
||||||
|
/// <exception cref="ArgumentException">Thrown if the format is invalid.</exception>
|
||||||
|
public static Color FromHexString(string hex)
|
||||||
{
|
{
|
||||||
if (hex.StartsWith("#"))
|
if (hex.StartsWith("#"))
|
||||||
{
|
{
|
||||||
@@ -216,6 +260,11 @@ namespace Voile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a lightened version of the color by interpolating toward white.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="amount">A value from 0.0 (no change) to 1.0 (fully white).</param>
|
||||||
|
/// <returns>A lighter <see cref="Color"/>.</returns>
|
||||||
public Color Lightened(float amount)
|
public Color Lightened(float amount)
|
||||||
{
|
{
|
||||||
var result = this;
|
var result = this;
|
||||||
@@ -225,6 +274,11 @@ namespace Voile
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a darkened version of the color by interpolating toward black.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="amount">A value from 0.0 (no change) to 1.0 (fully black).</param>
|
||||||
|
/// <returns>A darker <see cref="Color"/>.</returns>
|
||||||
public Color Darkened(float amount)
|
public Color Darkened(float amount)
|
||||||
{
|
{
|
||||||
var result = this;
|
var result = this;
|
||||||
@@ -234,6 +288,10 @@ namespace Voile
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts this color to a <see cref="System.Drawing.Color"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>A <see cref="System.Drawing.Color"/> with equivalent ARGB values.</returns>
|
||||||
public System.Drawing.Color ToSystemColor()
|
public System.Drawing.Color ToSystemColor()
|
||||||
{
|
{
|
||||||
var result = System.Drawing.Color.FromArgb(Argb);
|
var result = System.Drawing.Color.FromArgb(Argb);
|
||||||
|
|||||||
Reference in New Issue
Block a user