76 lines
2.3 KiB
C#
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
|
|
}
|
|
}
|