76 lines
2.3 KiB
C#

using System.Collections.Generic;
namespace DevComponents.DotNetBar.Charts.Style
{
///<summary>
/// VisualStylesTable
///</summary>
public static class VisualStylesTable
{
private static Dictionary<ChartControlStyle, DefaultVisualStyles>
_DefaultStyles = new Dictionary<ChartControlStyle, DefaultVisualStyles>();
/// <summary>
/// Gets the DefaultVisualStyles for specified Chart style.
/// </summary>
/// <param name="style">ChartControl Style to return.</param>
/// <returns>An instance of DefaultVisualStyle.</returns>
public static DefaultVisualStyles GetStyle(ChartControlStyle style)
{
DefaultVisualStyles visualStyle;
bool cacheStyle = true;
if (style == ChartControlStyle.Metro || !StyleManager.ColorTint.IsEmpty)
cacheStyle = false;
if (cacheStyle == false || !_DefaultStyles.TryGetValue(style, out visualStyle))
{
VisualStyleFactory factory = VisualStyleFactory.GetStyleFactory(style);
visualStyle = factory.CreateStyle();
if (cacheStyle) // Do not cache Metro style
_DefaultStyles.Add(style, visualStyle);
}
return visualStyle;
}
/// <summary>
/// Replaces an system style with the specified visual style.
/// </summary>
/// <param name="style">ChartControlStyle to replace.</param>
/// <param name="visualStyle">DefaultVisualStyles to replace the system style with.</param>
public static void SetStyleFactory(ChartControlStyle style, DefaultVisualStyles visualStyle)
{
_DefaultStyles[style] = visualStyle;
}
}
/// <summary>
/// Defines available pre-defined ChartControl visual styles.
/// </summary>
public enum ChartControlStyle
{
/// <summary>
/// Office 2010 Blue style.
/// </summary>
Office2010Blue,
/// <summary>
/// Office 2010 Silver style.
/// </summary>
Office2010Silver,
/// <summary>
/// Office 2010 Black style.
/// </summary>
Office2010Black,
/// <summary>
/// Metro Style.
/// </summary>
Metro
}
}