110 lines
3.7 KiB
C#
110 lines
3.7 KiB
C#
using System;
|
|
using System.Text;
|
|
using System.Drawing;
|
|
|
|
namespace DevComponents.DotNetBar
|
|
{
|
|
/// <summary>
|
|
/// Represents complex gradient color table.
|
|
/// </summary>
|
|
public class GradientColorTable
|
|
{
|
|
/// <summary>
|
|
/// Creates new instance of the object.
|
|
/// </summary>
|
|
public GradientColorTable() { }
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object and initializes it with default values.
|
|
/// </summary>
|
|
/// <param name="color1">Start color</param>
|
|
/// <param name="color2">End color</param>
|
|
public GradientColorTable(Color color)
|
|
{
|
|
BackgroundColorBlendCollection.InitializeCollection(Colors, color);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object and initializes it with default values.
|
|
/// </summary>
|
|
/// <param name="color1">Start color</param>
|
|
/// <param name="color2">End color</param>
|
|
public GradientColorTable(int color1, int color2)
|
|
: this(color1, color2, 90)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object and initializes it with default values.
|
|
/// </summary>
|
|
/// <param name="color1">Start color</param>
|
|
/// <param name="color2">End color</param>
|
|
public GradientColorTable(Color color1, Color color2)
|
|
: this(color1, color2, 90)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object and initializes it with default values.
|
|
/// </summary>
|
|
/// <param name="color1">Start color</param>
|
|
/// <param name="color2">End color</param>
|
|
/// <param name="linearGradientAngle">Linear gradient angle</param>
|
|
public GradientColorTable(int color1, int color2, int linearGradientAngle)
|
|
{
|
|
BackgroundColorBlendCollection.InitializeCollection(Colors, color1, color2);
|
|
this.LinearGradientAngle = linearGradientAngle;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates new instance of the object and initializes it with default values.
|
|
/// </summary>
|
|
/// <param name="color1">Start color</param>
|
|
/// <param name="color2">End color</param>
|
|
/// <param name="linearGradientAngle">Linear gradient angle</param>
|
|
public GradientColorTable(Color color1, Color color2, int linearGradientAngle)
|
|
{
|
|
BackgroundColorBlendCollection.InitializeCollection(Colors, color1, color2);
|
|
this.LinearGradientAngle = linearGradientAngle;
|
|
}
|
|
|
|
public bool IsEmpty
|
|
{
|
|
get
|
|
{
|
|
return Colors.Count == 0;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets or sets the color collection blend that describes the gradient.
|
|
/// </summary>
|
|
public BackgroundColorBlendCollection Colors = new BackgroundColorBlendCollection();
|
|
|
|
/// <summary>
|
|
/// Gets or sets the gradient type.
|
|
/// </summary>
|
|
public eGradientType GradientType = eGradientType.Linear;
|
|
|
|
/// <summary>
|
|
/// Gets or sets the linear gradient angle.
|
|
/// </summary>
|
|
public int LinearGradientAngle = 90;
|
|
|
|
/// <summary>
|
|
/// Creates a copy of table.
|
|
/// </summary>
|
|
/// <returns>A copy.</returns>
|
|
public GradientColorTable Clone()
|
|
{
|
|
GradientColorTable table = new GradientColorTable();
|
|
foreach (BackgroundColorBlend item in this.Colors)
|
|
{
|
|
table.Colors.Add(new BackgroundColorBlend(item.Color, item.Position));
|
|
}
|
|
table.LinearGradientAngle = this.LinearGradientAngle;
|
|
return table;
|
|
}
|
|
}
|
|
}
|