536cd135cc
Former-commit-id: 5624ac747d633e885131e8349322922b6a59baaa
785 lines
20 KiB
C#
785 lines
20 KiB
C#
//-------------------------------------------------------------
|
||
// <copyright company=’Microsoft Corporation’>
|
||
// Copyright © Microsoft Corporation. All Rights Reserved.
|
||
// </copyright>
|
||
//-------------------------------------------------------------
|
||
// @owner=alexgor, deliant
|
||
//=================================================================
|
||
// File: Borders3D.cs
|
||
//
|
||
// Namespace: System.Web.UI.WebControls[Windows.Forms].Charting
|
||
// System.Web.UI.WebControls[Windows.Forms].Charting.Borders3D
|
||
//
|
||
// Classes: BorderTypeRegistry, IBorderType, BorderSkin
|
||
//
|
||
// Purpose: 3D borders related classes:
|
||
// BorderTypeRegistry - known borders registry.
|
||
// IBorderType - border class interface.
|
||
// BorderSkin - border visual properties.
|
||
//
|
||
// Reviewed: AG - August 7, 2002
|
||
//
|
||
//===================================================================
|
||
|
||
#region Used namespaces
|
||
|
||
using System;
|
||
using System.Drawing;
|
||
using System.Drawing.Drawing2D;
|
||
using System.Drawing.Design;
|
||
using System.Collections;
|
||
using System.ComponentModel;
|
||
using System.ComponentModel.Design;
|
||
using System.Resources;
|
||
using System.Reflection;
|
||
using System.IO;
|
||
using System.Drawing.Imaging;
|
||
|
||
#if Microsoft_CONTROL
|
||
using System.Windows.Forms.DataVisualization.Charting;
|
||
using System.Windows.Forms.DataVisualization.Charting.Data;
|
||
using System.Windows.Forms.DataVisualization.Charting.ChartTypes;
|
||
using System.Windows.Forms.DataVisualization.Charting.Utilities;
|
||
using System.Windows.Forms.DataVisualization.Charting.Borders3D;
|
||
|
||
using System.Windows.Forms.Design;
|
||
#else
|
||
using System.Web.UI;
|
||
using System.Web.UI.DataVisualization.Charting.Data;
|
||
using System.Web.UI.DataVisualization.Charting.ChartTypes;
|
||
using System.Web.UI.DataVisualization.Charting;
|
||
using System.Web.UI.DataVisualization.Charting.Utilities;
|
||
#endif
|
||
|
||
|
||
#endregion
|
||
|
||
#if Microsoft_CONTROL
|
||
namespace System.Windows.Forms.DataVisualization.Charting
|
||
#else
|
||
namespace System.Web.UI.DataVisualization.Charting
|
||
|
||
#endif
|
||
{
|
||
#region Border style enumeration
|
||
|
||
/// <summary>
|
||
/// Styles of the border skin.
|
||
/// </summary>
|
||
public enum BorderSkinStyle
|
||
{
|
||
/// <summary>
|
||
/// Border not used.
|
||
/// </summary>
|
||
None,
|
||
/// <summary>
|
||
/// Emboss border.
|
||
/// </summary>
|
||
Emboss,
|
||
/// <summary>
|
||
/// Raised border.
|
||
/// </summary>
|
||
Raised,
|
||
/// <summary>
|
||
/// Sunken border.
|
||
/// </summary>
|
||
Sunken,
|
||
/// <summary>
|
||
/// Thin border with rounded corners.
|
||
/// </summary>
|
||
FrameThin1,
|
||
/// <summary>
|
||
/// Thin border with rounded top corners.
|
||
/// </summary>
|
||
FrameThin2,
|
||
/// <summary>
|
||
/// Thin border with square corners.
|
||
/// </summary>
|
||
FrameThin3,
|
||
/// <summary>
|
||
/// Thin border with square outside corners and rounded inside corners.
|
||
/// </summary>
|
||
FrameThin4,
|
||
/// <summary>
|
||
/// Thin border with rounded corners and ----s.
|
||
/// </summary>
|
||
FrameThin5,
|
||
/// <summary>
|
||
/// Thin border with square inside corners and rounded outside corners.
|
||
/// </summary>
|
||
FrameThin6,
|
||
/// <summary>
|
||
/// Border with rounded corners. Supports title text.
|
||
/// </summary>
|
||
FrameTitle1,
|
||
/// <summary>
|
||
/// Border with rounded top corners. Supports title text.
|
||
/// </summary>
|
||
FrameTitle2,
|
||
/// <summary>
|
||
/// Border with square corners. Supports title text.
|
||
/// </summary>
|
||
FrameTitle3,
|
||
/// <summary>
|
||
/// Border with rounded inside corners and square outside corners. Supports title text.
|
||
/// </summary>
|
||
FrameTitle4,
|
||
/// <summary>
|
||
/// Border with rounded corners and ----s. Supports title text.
|
||
/// </summary>
|
||
FrameTitle5,
|
||
/// <summary>
|
||
/// Border with rounded outside corners and square inside corners. Supports title text.
|
||
/// </summary>
|
||
FrameTitle6,
|
||
/// <summary>
|
||
/// Border with rounded corners. No border on the right side. Supports title text.
|
||
/// </summary>
|
||
FrameTitle7,
|
||
/// <summary>
|
||
/// Border with rounded corners on top and bottom sides only. Supports title text.
|
||
/// </summary>
|
||
FrameTitle8
|
||
}
|
||
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// Drawing properties of the 3D border skin.
|
||
/// </summary>
|
||
[
|
||
DefaultProperty("SkinStyle"),
|
||
SRDescription("DescriptionAttributeBorderSkin_BorderSkin"),
|
||
]
|
||
#if ASPPERM_35
|
||
[AspNetHostingPermission(System.Security.Permissions.SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
|
||
[AspNetHostingPermission(System.Security.Permissions.SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
|
||
#endif
|
||
public class BorderSkin : ChartElement
|
||
{
|
||
#region Fields
|
||
|
||
// Private data members, which store properties values
|
||
private Color _pageColor = Color.White;
|
||
private BorderSkinStyle _skinStyle = BorderSkinStyle.None;
|
||
private GradientStyle _backGradientStyle = GradientStyle.None;
|
||
private Color _backSecondaryColor = Color.Empty;
|
||
private Color _backColor = Color.Gray;
|
||
private string _backImage = "";
|
||
private ChartImageWrapMode _backImageWrapMode = ChartImageWrapMode.Tile;
|
||
private Color _backImageTransparentColor = Color.Empty;
|
||
private ChartImageAlignmentStyle _backImageAlignment = ChartImageAlignmentStyle.TopLeft;
|
||
private Color _borderColor = Color.Black;
|
||
private int _borderWidth = 1;
|
||
private ChartDashStyle _borderDashStyle = ChartDashStyle.NotSet;
|
||
private ChartHatchStyle _backHatchStyle = ChartHatchStyle.None;
|
||
|
||
#endregion
|
||
|
||
#region Constructors
|
||
|
||
/// <summary>
|
||
/// Default public constructor.
|
||
/// </summary>
|
||
public BorderSkin() : base()
|
||
{
|
||
}
|
||
|
||
/// <summary>
|
||
/// Constructor.
|
||
/// </summary>
|
||
/// <param name="parent">The parent chart element.</param>
|
||
internal BorderSkin(IChartElement parent) : base (parent)
|
||
{
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region Border skin properties
|
||
|
||
/// <summary>
|
||
/// Gets or sets the page color of a border skin.
|
||
/// </summary>
|
||
[
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(typeof(Color), "White"),
|
||
SRDescription("DescriptionAttributeBorderSkin_PageColor"),
|
||
TypeConverter(typeof(ColorConverter)),
|
||
Editor(Editors.ChartColorEditor.Editor, Editors.ChartColorEditor.Base),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute)
|
||
#endif
|
||
]
|
||
public Color PageColor
|
||
{
|
||
get
|
||
{
|
||
return _pageColor;
|
||
}
|
||
set
|
||
{
|
||
_pageColor = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// Gets or sets the style of a border skin.
|
||
/// </summary>
|
||
[
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(BorderSkinStyle.None),
|
||
SRDescription("DescriptionAttributeBorderSkin_SkinStyle"),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute),
|
||
#endif
|
||
ParenthesizePropertyNameAttribute(true)
|
||
]
|
||
public BorderSkinStyle SkinStyle
|
||
{
|
||
get
|
||
{
|
||
return _skinStyle;
|
||
}
|
||
set
|
||
{
|
||
_skinStyle = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the background color of a skin frame.
|
||
/// </summary>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(typeof(Color), "Gray"),
|
||
SRDescription("DescriptionAttributeFrameBackColor"),
|
||
TypeConverter(typeof(ColorConverter)),
|
||
Editor(Editors.ChartColorEditor.Editor, Editors.ChartColorEditor.Base),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute)
|
||
#endif
|
||
]
|
||
public Color BackColor
|
||
{
|
||
get
|
||
{
|
||
return _backColor;
|
||
}
|
||
set
|
||
{
|
||
_backColor = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the border color of a skin frame.
|
||
/// </summary>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(typeof(Color), "Black"),
|
||
SRDescription("DescriptionAttributeBorderColor"),
|
||
TypeConverter(typeof(ColorConverter)),
|
||
Editor(Editors.ChartColorEditor.Editor, Editors.ChartColorEditor.Base),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute)
|
||
#endif
|
||
]
|
||
public Color BorderColor
|
||
{
|
||
get
|
||
{
|
||
return _borderColor;
|
||
}
|
||
set
|
||
{
|
||
_borderColor = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the background hatch style of a skin frame.
|
||
/// </summary>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(ChartHatchStyle.None),
|
||
SRDescription("DescriptionAttributeFrameBackHatchStyle"),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute),
|
||
#endif
|
||
Editor(Editors.HatchStyleEditor.Editor, Editors.HatchStyleEditor.Base)
|
||
]
|
||
public ChartHatchStyle BackHatchStyle
|
||
{
|
||
get
|
||
{
|
||
return _backHatchStyle;
|
||
}
|
||
set
|
||
{
|
||
_backHatchStyle = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the background image of a skin frame.
|
||
/// </summary>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(""),
|
||
SRDescription("DescriptionAttributeBackImage"),
|
||
Editor(Editors.ImageValueEditor.Editor, Editors.ImageValueEditor.Base),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute),
|
||
#endif
|
||
]
|
||
public string BackImage
|
||
{
|
||
get
|
||
{
|
||
return _backImage;
|
||
}
|
||
set
|
||
{
|
||
_backImage = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the drawing mode for the background image of a skin frame.
|
||
/// </summary>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(ChartImageWrapMode.Tile),
|
||
SRDescription("DescriptionAttributeImageWrapMode"),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute)
|
||
#endif
|
||
]
|
||
public ChartImageWrapMode BackImageWrapMode
|
||
{
|
||
get
|
||
{
|
||
return _backImageWrapMode;
|
||
}
|
||
set
|
||
{
|
||
_backImageWrapMode = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets a color which will be replaced with a transparent color
|
||
/// while drawing the background image of a skin frame.
|
||
/// </summary>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(typeof(Color), ""),
|
||
SRDescription("DescriptionAttributeImageTransparentColor"),
|
||
TypeConverter(typeof(ColorConverter)),
|
||
Editor(Editors.ChartColorEditor.Editor, Editors.ChartColorEditor.Base),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute)
|
||
#endif
|
||
]
|
||
public Color BackImageTransparentColor
|
||
{
|
||
get
|
||
{
|
||
return _backImageTransparentColor;
|
||
}
|
||
set
|
||
{
|
||
_backImageTransparentColor = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the background image alignment of a skin frame.
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// Used by ClampUnscale drawing mode.
|
||
/// </remarks>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(ChartImageAlignmentStyle.TopLeft),
|
||
SRDescription("DescriptionAttributeBackImageAlign"),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute)
|
||
#endif
|
||
]
|
||
public ChartImageAlignmentStyle BackImageAlignment
|
||
{
|
||
get
|
||
{
|
||
return _backImageAlignment;
|
||
}
|
||
set
|
||
{
|
||
_backImageAlignment = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the background gradient style of a skin frame.
|
||
/// </summary>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(GradientStyle.None),
|
||
SRDescription("DescriptionAttributeBackGradientStyle"),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute),
|
||
#endif
|
||
Editor(Editors.GradientEditor.Editor, Editors.GradientEditor.Base)
|
||
]
|
||
public GradientStyle BackGradientStyle
|
||
{
|
||
get
|
||
{
|
||
return _backGradientStyle;
|
||
}
|
||
set
|
||
{
|
||
_backGradientStyle = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the secondary background color of a skin frame.
|
||
/// </summary>
|
||
/// <remarks>
|
||
/// This color is used with <see cref="BackColor"/> when <see cref="BackHatchStyle"/> or
|
||
/// <see cref="BackGradientStyle"/> are used.
|
||
/// </remarks>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(typeof(Color), ""),
|
||
SRDescription("DescriptionAttributeBorderSkin_FrameBackSecondaryColor"),
|
||
TypeConverter(typeof(ColorConverter)),
|
||
Editor(Editors.ChartColorEditor.Editor, Editors.ChartColorEditor.Base),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute)
|
||
#endif
|
||
]
|
||
public Color BackSecondaryColor
|
||
{
|
||
get
|
||
{
|
||
return _backSecondaryColor;
|
||
}
|
||
set
|
||
{
|
||
_backSecondaryColor = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the width of the border line of a skin frame.
|
||
/// </summary>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(1),
|
||
SRDescription("DescriptionAttributeBorderSkin_FrameBorderWidth"),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute)
|
||
#endif
|
||
]
|
||
public int BorderWidth
|
||
{
|
||
get
|
||
{
|
||
return _borderWidth;
|
||
}
|
||
set
|
||
{
|
||
if(value < 0)
|
||
{
|
||
throw(new ArgumentOutOfRangeException("value", SR.ExceptionBorderWidthIsNotPositive));
|
||
}
|
||
_borderWidth = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets or sets the style of the border line of a skin frame.
|
||
/// </summary>
|
||
[
|
||
|
||
SRCategory("CategoryAttributeAppearance"),
|
||
Bindable(true),
|
||
NotifyParentPropertyAttribute(true),
|
||
DefaultValue(ChartDashStyle.NotSet),
|
||
SRDescription("DescriptionAttributeBorderSkin_FrameBorderDashStyle"),
|
||
#if !Microsoft_CONTROL
|
||
PersistenceMode(PersistenceMode.Attribute)
|
||
#endif
|
||
]
|
||
public ChartDashStyle BorderDashStyle
|
||
{
|
||
get
|
||
{
|
||
return _borderDashStyle;
|
||
}
|
||
set
|
||
{
|
||
_borderDashStyle = value;
|
||
this.Invalidate();
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
}
|
||
|
||
|
||
#if Microsoft_CONTROL
|
||
namespace System.Windows.Forms.DataVisualization.Charting.Borders3D
|
||
#else
|
||
namespace System.Web.UI.DataVisualization.Charting.Borders3D
|
||
#endif
|
||
{
|
||
/// <summary>
|
||
/// Keep track of all registered 3D borders.
|
||
/// </summary>
|
||
internal class BorderTypeRegistry : IServiceProvider
|
||
{
|
||
#region Fields
|
||
|
||
// Border types image resource manager
|
||
private ResourceManager _resourceManager = null;
|
||
|
||
// Storage for all registered border types
|
||
internal Hashtable registeredBorderTypes = new Hashtable(StringComparer.OrdinalIgnoreCase);
|
||
private Hashtable _createdBorderTypes = new Hashtable(StringComparer.OrdinalIgnoreCase);
|
||
|
||
#endregion
|
||
|
||
#region Constructors and services
|
||
|
||
/// <summary>
|
||
/// Border types registry public constructor
|
||
/// </summary>
|
||
public BorderTypeRegistry()
|
||
{
|
||
}
|
||
|
||
/// <summary>
|
||
/// Returns border type registry service object
|
||
/// </summary>
|
||
/// <param name="serviceType">Service type to get.</param>
|
||
/// <returns>Border registry service.</returns>
|
||
[EditorBrowsableAttribute(EditorBrowsableState.Never)]
|
||
object IServiceProvider.GetService(Type serviceType)
|
||
{
|
||
if(serviceType == typeof(BorderTypeRegistry))
|
||
{
|
||
return this;
|
||
}
|
||
throw (new ArgumentException( SR.ExceptionBorderTypeRegistryUnsupportedType( serviceType.ToString()) ));
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region Methods
|
||
|
||
/// <summary>
|
||
/// Adds 3D border type into the registry.
|
||
/// </summary>
|
||
/// <param name="name">Border type name.</param>
|
||
/// <param name="borderType">Border class type.</param>
|
||
public void Register(string name, Type borderType)
|
||
{
|
||
// First check if border type with specified name already registered
|
||
if(registeredBorderTypes.Contains(name))
|
||
{
|
||
// If same type provided - ignore
|
||
if(registeredBorderTypes[name].GetType() == borderType)
|
||
{
|
||
return;
|
||
}
|
||
|
||
// Error - throw exception
|
||
throw (new ArgumentException(SR.ExceptionBorderTypeNameIsNotUnique( name ) ) );
|
||
}
|
||
|
||
// Make sure that specified class support IBorderType interface
|
||
bool found = false;
|
||
Type[] interfaces = borderType.GetInterfaces();
|
||
foreach(Type type in interfaces)
|
||
{
|
||
if(type == typeof(IBorderType))
|
||
{
|
||
found = true;
|
||
break;
|
||
}
|
||
}
|
||
if(!found)
|
||
{
|
||
throw (new ArgumentException(SR.ExceptionBorderTypeHasNoInterface ));
|
||
}
|
||
|
||
// Add border type to the hash table
|
||
registeredBorderTypes[name] = borderType;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Returns border type object by name.
|
||
/// </summary>
|
||
/// <param name="name">Border type name.</param>
|
||
/// <returns>Border type object derived from IBorderType.</returns>
|
||
public IBorderType GetBorderType(string name)
|
||
{
|
||
// First check if border type with specified name registered
|
||
if(!registeredBorderTypes.Contains(name))
|
||
{
|
||
throw( new ArgumentException( SR.ExceptionBorderTypeUnknown( name ) ) );
|
||
}
|
||
|
||
// Check if the border type object is already created
|
||
if(!_createdBorderTypes.Contains(name))
|
||
{
|
||
// Create border type object
|
||
_createdBorderTypes[name] =
|
||
((Type)registeredBorderTypes[name]).Assembly.
|
||
CreateInstance(((Type)registeredBorderTypes[name]).ToString());
|
||
}
|
||
|
||
return (IBorderType)_createdBorderTypes[name];
|
||
}
|
||
|
||
/// <summary>
|
||
/// Border images resource manager.
|
||
/// </summary>
|
||
public ResourceManager ResourceManager
|
||
{
|
||
get
|
||
{
|
||
// Create border images resource manager
|
||
if(_resourceManager == null)
|
||
{
|
||
_resourceManager = new ResourceManager("System.Web.UI.DataVisualization.Charting", Assembly.GetExecutingAssembly());
|
||
}
|
||
return _resourceManager;
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
|
||
/// <summary>
|
||
/// Interface which defines the set of standard methods and
|
||
/// properties for each border type.
|
||
/// </summary>
|
||
internal interface IBorderType
|
||
{
|
||
#region Properties and Method
|
||
|
||
/// <summary>
|
||
/// Border type name.
|
||
/// </summary>
|
||
string Name { get; }
|
||
|
||
/// <summary>
|
||
/// Sets/Gets the resolution to draw with;
|
||
/// </summary>
|
||
float Resolution
|
||
{
|
||
set;
|
||
}
|
||
/// <summary>
|
||
/// Draws 3D border.
|
||
/// </summary>
|
||
/// <param name="graph">Graphics to draw the border on.</param>
|
||
/// <param name="borderSkin">Border skin object.</param>
|
||
/// <param name="rect">Rectangle of the border.</param>
|
||
/// <param name="backColor">Color of rectangle.</param>
|
||
/// <param name="backHatchStyle">Hatch style.</param>
|
||
/// <param name="backImage">Back Image.</param>
|
||
/// <param name="backImageWrapMode">Image mode.</param>
|
||
/// <param name="backImageTransparentColor">Image transparent color.</param>
|
||
/// <param name="backImageAlign">Image alignment.</param>
|
||
/// <param name="backGradientStyle">Gradient type.</param>
|
||
/// <param name="backSecondaryColor">Gradient End Color.</param>
|
||
/// <param name="borderColor">Border Color.</param>
|
||
/// <param name="borderWidth">Border Width.</param>
|
||
/// <param name="borderDashStyle">Border Style.</param>
|
||
void DrawBorder(
|
||
ChartGraphics graph,
|
||
BorderSkin borderSkin,
|
||
RectangleF rect,
|
||
Color backColor,
|
||
ChartHatchStyle backHatchStyle,
|
||
string backImage,
|
||
ChartImageWrapMode backImageWrapMode,
|
||
Color backImageTransparentColor,
|
||
ChartImageAlignmentStyle backImageAlign,
|
||
GradientStyle backGradientStyle,
|
||
Color backSecondaryColor,
|
||
Color borderColor,
|
||
int borderWidth,
|
||
ChartDashStyle borderDashStyle);
|
||
|
||
/// <summary>
|
||
/// Adjust areas rectangle coordinate to fit the 3D border.
|
||
/// </summary>
|
||
/// <param name="graph">Graphics to draw the border on.</param>
|
||
/// <param name="areasRect">Position to adjust.</param>
|
||
void AdjustAreasPosition(ChartGraphics graph, ref RectangleF areasRect);
|
||
|
||
/// <summary>
|
||
/// Returns the position of the rectangular area in the border where
|
||
/// title should be displayed. Returns empty rect if title can't be shown in the border.
|
||
/// </summary>
|
||
/// <returns>Title position in border.</returns>
|
||
RectangleF GetTitlePositionInBorder();
|
||
|
||
#endregion
|
||
}
|
||
}
|