ZedGraph Class Library Revision History 17-Jan-2006 (by Champion) v4.2.4 [UPD] Add call to ZoomEvent from MouseWheel action [UPD] Add public property to access GraphPane.ZoomStack 12-Jan-2006 (by Champion) [NEW] Add ZedGraphControl.ZoomPane() 7-Jan-2006 (by Champion) [UPD] Exclude points from GetRange() that are <= 0 for log scales [FIX] Make Fill.IsVisible retain original FillType when set to true 26-Dec-2005 (by Champion) [UPD] Add Scale class and one subtype for each AxisType [FIX] CalcNumTics was whacked for MajorUnit of Hours, Minutes, or Seconds [UPD] Improve XDate to work with fractional seconds and/or milliseconds 21-Dec-2005 (by Champion) [FIX] panebase draws fill even if PaneFill.IsVisible is false -- fixed [UPD] Avoid overlap by checking actual spacing (particular useful for Exponential scales) [UPD] Make scale labels apply scaleMult for Exponential scales 20-Dec-2005 (by Champion) [FIX] ZedGraphControl.cs IsEnableVZoom/IsEnableHZoom properties referenced themselves, causing stack overflow [NEW] Add MouseUpEvent, MouseMoveEvent and change MouseDownEvent to just use (object sender, MouseEventArgs) [UPD] Add lots of paranoid tests in ZedGraphControl.cs to avoid null object references [NEW] Add code from jackply to add exponential axis option 15-Dec-2005 (by Champion) [NEW] Add TimeSpan options to XDate.ToString() 11-Dec-2005 (by Champion) [NEW] Add Fill.RangeDefault 8-Dec-2005 (by Champion) [FIX] Make cross logic work properly for isScaleLabels inside on secondary axes [NEW] Add AxisGap property to control space between secondary axes 7-Dec-2005 (by Champion) [FIX] Make stack bar & stack line work with non-ordinal axes 29-Nov-2005 (by Champion) [NEW] Add IsEnableVZoom and IsEnableHZoom to constrain zoom in ZedGraphControl [NEW] Add implicit float cast in XDate 24-Nov-2005 (by softlion, concern the webcontrol only) [FIX] major bug, positioning of graph items was not working at all. Action: removed X1 and Y1 (redundant, described as alias of X and Y). Their 0 value were overriding the original X and Y values. [UPD] Renamed AxisFill to GraphFill, AxisBorder to GraphBorder, AxisRect to GraphRect so axis and graph space becomes two correctly separated things. [NEW] MasterPaneFill and MasterPaneBorder properties [NEW] Transparency is shown as squares in the designer. [REM] PNG transparency is supported in FireFox. To get it also in IE6 or less, you must use the IE7 javascript http://dean.edwards.name/IE7/ like this: 23-Nov-2005 (by Champion) [FIX] Ten Power placement for scale labels [FIX] ShowPointValues with Text Axes and IsOverrideOrdinal [FIX] Center data when range is zero for PickScale() [FIX] remake font based on actual prior font size instead of persistent field [FIX] modify XDate docs to explain Excel date bug [NEW] add SampleMultiPointList class to illustrate IPointList usage [NEW] demo pane with four y axes [NEW] StickItemDemo, several Bars with Labels demos 22-Nov-2005 (by Champion) [FIX] minor fix for cross axes with IsScaleLabelsInside 22-Nov-2005 (by softlion) [UPD] Updated Web sample in C# to work with new RenderMode option [FIX] Minor bug fix introduced in 21-nov-2005 version [FIX] Workaround for .NET File.GetCreationTime method's bug. 21-Nov-2005 (by softlion) [FIX] Caching with new rendering mode was not working as expected. [NEW] The generated image tag has now a querystring to defeat browser caching mechanism when an update is needed. [NEW] ColorOpacity property in "Fill" structures. We should created a new Color selector designer with the ability to set the color alpha channel instead, but this is a quick start. [NEW] Added and updated some comments 19-Nov-2005 (by softlion) Major changes to the web interface: DataSource property works. Optional DataSource are also available on each curve, by default it uses the main DataSource. DataMember property is available as a main property for the base axis (x axis) and as a property on each curve (y axis). New RenderMode property to render as an IMG tag instead of generating and returning an image on the fly. A temporary image file is created and saved in the folder specified by the new RenderedImagePath property. The file name is the control ID (may change in a near future). Comments uptdated and added on properties Property categories change for readability (ASP.NET pages made with previous version will need to upgrade) Major and minor grid properties for all axis are now grouped into a child item minor bug fix: image generated on the fly also sends HTML IMG tag 6-Nov-2005 (by Champion) Make ScrollBar SmallChange proportional to LargeChange (thanks to tafkat) 4-Nov-2005 (by Champion) Fix Thumb size for scrollbars Add Deutsch translation for "Image copied to clipboard" phrase Add protection against manually set axis limits that exclude all data 31-Oct-2005 (by Champion) Add Swedish Translation, fix Spanish translation, add "Image copied to clipboard" to localization Split out context menu actions into public methods 7-Oct-2005 (by Champion) Fix LinearAsOrdinal and DateAsOrdinal off-by-one error and use blank label for out of range condition Add GraphPane.IsZoomed Property Add LegendPos.TopFlushLeft and BottomFlushLeft 25-Sep-2005 (by Champion) Fix crash when drawing pie charts that get too small (AxisRect dimensions less than zero) Fix DateAsOrdinal & LinearAsOrdinal indexing problem Fix Mouse double click problem in ZedGraphControl 22-Sep-2005 (by Champion) Add support for multiple Y and Y2 axes (major mods throughout) Add Axis.IsAllTics property Fix FindNearestPoint bug for text type axes Add ZedGraphControl.IsShowCursorValues 9-Sep-2005 (by Champion) v4.2.3 Fix issue with CalcDateStepSize() for max label calcs where the step number is only a target, not a max 4-Sep-2005 (by Champion) v4.2.2 Fix problem with copy constructor on HiLowBar.cs, HiLowBarItem.cs, MasterPane.cs 26-Aug-2005 (by Champion) Add HSBColor struct Add French (thanks to Fred Thomas) localization file Add Deutsch and Spanish (thanks to codemeier) localization files 22-Aug-2005 (by Champion) Add Localization to ZedGraphControl Fix ContextMenu mouse location issue 21-Aug-2005 (by Champion) remove set requirement from IPointList Add ZedGraphControl.IsAutoScrollRange and SetScrollRangeFromData() 19-Aug-2005 (by Champion) Fix Pie.SlicePath access in FindNearestPoint Fix y position calc for axis title when IsScaleVisible=false 18-Aug-2005 (by Champion) Add new AxisType's LinearAsOrdinal and DateAsOrdinal 17-Aug-2005 (by Champion) Add new CoordTypes to allow mixed coordinate systems. Move Transform for the Coord system up to the PaneBase so there is only a single function 13-Aug-2005 (by Champion) Disable the ZedGraphControl.PanModifierKeys due to a bug in VS2003 causing compiler error 11-Aug-2005 (by Champion) Fix rotated scale spacing logic to allow lapping at angles 10-Aug-2005 (by Champion) Add IPointList interface Remove ErrorBarItem.BarBase and HiLowBarItem.BarBase -- use GraphPane.BarBase instead Add BasicArrayPointList 8-Aug-2005 (by Champion) Add strong name key to assembly 2-Aug-2005 (by Champion) v 4.2 Fix roundoff problem on scrollbars Fix Auto flags in ZedGraphWeb Fix the web demos to work properly 21-Jul-2005 (by Champion) Add PolyItem Add ArrowItem.Style Add CurveItem.FontSpec Make LineItem.Symbol & LineItem.Line modifiable Add StickItem Don't clone the PointPairList on AddCurve() Add DropShadow to FontSpec 19-Jul-2005 (by Champion) Add IsCrossTic, IsInsideCrossTic, IsMinorCrossTic, IsMinorInsideCrossTic 15-Jul-2005 (by Champion) Add PointPairList.Insert overloads 14-Jul-2005 (by Champion) v4.1.8beta Add Axis.IsScaleLabelsInside Add Axis.IsSkipFirstLabel Add Axis.IsSkipLastLabel Add ZedGraphControl.ScrollMinY2, ScrollMaxY2, IsScrollY2 Revamp Axis.Cross logic, GraphPane.CalcAxisRect, and Axis.CalcSpace 6-Jul-2005 (by Champion) v4.1.7 Add Axis.IsAxisSegmentVisible Fix axis space code to not have space when tics false, scalevisible false, etc. 5-Jul-2005 (by Champion) v4.1.6 Fix GraphicsPath bug (using StartFigure) for X-Cross, Plus, and Star Symbols Initialize MasterPane in ZedGraphControl to IsShowTitle = false 26-Jun-2005 (by Champion) Fix bug to Remake fonts when family, italic, bold, or underline changes Show MinorInsideTics, MinorOutsideTics, and MinorGrids even if MinorTics are not shown 6-Jun-2005 (by Champion) v4.1.5 Add GraphItem.IsClippedToAxisRect Fix isShowTitle problem (was not being initialized at all) 4-Jun-2005 (by Champion) Fix BarCenterValue() to properly handle ErrorBars and HiLowBars 3-Jun-2005 (by Champion) v4.1.4 Add PointValueEvent 29-Apr-2005 (by Champion) v4.1.3 Fix IsShowTitle so it does not get set to false if title is blank 19-Apr-2005 (by Champion) v4.1.2 Add BarType.ClusterHiLow Add Curve.IsOverrideOrdinal Fix bug with LegendPos.BottomCenter Fix bug that allows crash if gridDash on/off is zero 16-Apr-2005 (by Champion) v4.1.1 Fix FindNearestPoint() for Y2Axis curves Fix FindNearestPoint() for bars that extend beyond axis range 15-Apr-2005 (by Champion) v4.1.0 Add scrollbars to ZedGraphControl (IsShowHScrollBar, IsShowVScrollBar) ScrollMinX & ScrollMaxX control the X bounds ScrollMinY & ScrollMaxY control the Y bounds Use ScaleFormat for numeric labels and dates. Remove NumDec and NumDecAuto Subscription event for zoom/pan notification (see ZoomEvent) 19-Apr-2005 (by Champion) v4.0.8 Fix roundoff bug for bar width (when scale has large values like dates) Add PointPairList.Equals & PointPair.Equals Add AddCurve methods with lineWidth Make ToolTips disappear if mouse moves away from point Don't show tooltips for invisible curves Add Axis.IsScaleVisible 18-Apr-2005 (by Champion) v4.0.7 Fix context menu event for null case Fix CurveItem.IsLegendLabelVisible 16-Apr-2005 (by Champion) v4.0.6 Fix panning for log scales Add wheel mouse zoom Add Context Menu event/delegate 15-Apr-2005 (by Champion) v4.0.5 Fix XDate roundoff bug 11-Apr-2005 (by Martz) Fix missing min/max properties on Axis proxy 02-Apr-2005 (by Martz) Added multiple pane support to web control 29-Mar-2005 (by Champion) v4.0.4 Fix zeroline for filled curves Add SetX(), SetY(), SetZ() methods to PointPairList 25-Mar-2005 (by Champion) v4.0.3 Fix Gradient by Value for Bars 21-Mar-2005 (by Champion) v4.0.2 Fix IsFontsScaled 20-Mar-2005 (by Champion) v4.0.1 Add protection on CalcNumTics -- no more than 500 tics AxisChange() -- Always call pickscale before CalcAxisRect() to make sure scales are reasonable 19-Mar-2005 RELEASE VERSION 4.0 17-Mar-2005 (by Champion) Added Save As... to context menu Fix up Web Demos 17-Mar-2005 (by Martz) Add ZedGraphWebPointPairCollection 15-Mar-2005 (by Champion) Fixed a bug that caused missing tics at the beginning of the axis for date type axes 15-Mar-2005 (by Martz) Added C# and VB web demo for visual designed graphs Added C# and VB web demo for multi-graph per webform 10-Mar-2005 (by Champion) Added horizontal stacked bar demo Fix bug in CurveList.GetStackRange() (failed to account for BarBase) Added GraphPane.IsBoundedRanges & modifed GetRange() cascade to include bounds 7-Mar-2005 (by Champion) Add comments to demo code, more cleanup 7-March-2005 (by Vos) Updated the demo tab forms and some minor updates to the other demo code (commenting and such) 4-Mar-2005 (by Champion) Update Demos Change BarValueHandler to ValueHandler 28-Feb-2005 (by Champion) Fix ColorSymbolRotator to use symbolCount. Add more symbols & colors Add gradient color overload for GraphPane.AddPieSlice Revert demo project back to remove the property control 23-Feb-2005 (by Champion) Add Axis.BaseTic property Add ZedGraph.LibTest project to have a class library based general testing platform 22-Feb-2005 (by Champion) Add ZoomState stack for maintaining history of zoom and pan states in UserControl 19-Feb-2005 (by Champion) Make Axis label shift along with axis for non-default Cross value Make bounding axis label visible if pane.AxisBorder.IsVisible = false Add Pan/Zoom/Copy/ShowValues/AutoScale options in new context menu for ZedGraphControl 14-Feb-2005 (by Martz) Fix subitem persistance bug Add designtime graph display Add remaining proxy class members 12-Feb-2005 (by Martz) Fix control parsing error Add full support for graphpane and a variety of additional objects Move proxy/object mapping to individual objects Add support for static default values where possible Add graphitem partial support Add initial support for DataBinding 9-Feb-2005 (Champion) Make ZGControl tooltips display text for AxisType.Text Push Legend functionality up to PaneBase so MasterPane has a legend Add Axis.Cross to allow axes at non-default locations 21-Jan-2005 (by Champion) Replace GraphPaneList with MasterPane Add PaneList as GraphPane collection class Add PaneBase as parent of MasterPane and GraphPane 18-Jan-2005 (by Champion) Add GraphPaneList Use Tag.Clone() when ICloneable available Fix GraphItemList copy constructor Fix PieItem copy constructor Add Tag to GraphPane 17-Jan-2005 (by Champion) Add ZedGraphControl.PointDateFormat Move Axis visibility setup for pies to AxisChange() Move pie rect calcs out to static PieItem.CalcRect() Fix LegendPos.TopCenter problem (missing switch) Add Pie Serialization Fix Z-Order treatment of GraphItems in FindNearestObject 17-Jan-2005 (by Kaye) Fix up PieItem; Remove PieSlice 15-Jan-2005 (by Champion) Fix GraphItem Copy Constructor Fix +1 pixel error on ZedGraphControl bitmap Fix StringAlignment bug for FontSpec Fix maxlabels bug Fix ordinal transform bug for lines/symbols 8-Jan-2005 (by Champion) Fix CurveList.GetRange bug for stacked curves Some code cleanup Add SplineInterpolateX to PointPairList 7-Jan-2005 (by Martz) Add expanded interface for Web Chart 5-Jan-2005 (by Champion) Add Line Stacking via GraphPane.LineType Add Serialization - Implement ISerializable Fix StringAlignment bug for FontSpec Add Interpolation methods to PointPairList Fix maxlabels bug for text axes 10-Dec-2004 (by Champion) Add Z-Order control to GraphItems Add CollectionPlus base class with Move(), etc. methods Change ErrorBar ends to Symbols Add SymbolType.HDash and SymbolType.VDash 8-Dec-2004 (by Champion) Add FindNearest unit tests Fix extreme outlier overflow problem for symbols 8-Dec-2004 (by Kaye) Add Unit Tests 7-Dec-2004 (by Champion) Add overloaded constructors to PointPair for Tag labels Add ToolTip capability to ZedGraphControl to show point values Make ZedGraphControl.Image have bitmap 1 pixel wider & taller 3-Dec-2004 (by Champion) Add BoxItem, EllipseItem types Add BarValueHandler to handle stacking calcs Add ZedGraphWeb asp control stuff Fix FindNearestPoint 17-Nov-2004 (by Champion) Add ImageItem 16-Nov-2004 (by Champion) Convert ArrowItem & TextItem to children of GraphItem Delete TextList & ArrowList, make new GraphItemList 16-Nov-2004 (by Champion) Add ErrorBar (I-beam) graph type Convert HiLowBar type to a separate HiLowBarItem class Fix Hatch and PathGradient brush problem 9-Nov-2004 (by Champion) Add FillType.GradientByX, Y, Z Fix & Consolidate DrawSingleBar() code Add UserControl transparency Add new Fill constructors for ColorBlend, color array, etc. 5-Nov-2004 (by Champion) Add BaseVal to PointPair Remove PointTrio and PointTrioList entirely Add BarType.SortedOverlay Add DrawSingleBar code 2-Nov-2004 (by Champion) Fix scaling logic throughout - all sizes now in points Fix CalcScaleFactor so scale factor is world pixels/standard point Legend Height calculation now accounts for big symbols Correct Axis border so it is drawn with floats instead of ints (avoids misalignment) Add GraphPane.IsPenWidthScaled Add scaling to pen widths throughout Fix Fill.IsScaled (missing from copy constructor) Fix missing scale factor on tic spacing for axis text Add GraphPane.ScaledImage() 31-Oct-2004 (by Champion) Fix Image ScaleTransform bug Fix another reference problem in BuildPointsArray() 30-Oct-2004 (by Champion) Fix array ref problem when index=0 in BuildPointsArray() CVS was wacky, corrected a few files 29-Oct-2004 (by Kaye) Add BarType.Stack 28-Oct-2004 (by Champion) Add BarType.HiLow Add DateTime constructor to XDate PointTrioList is child of PointPairList 22-Oct-2004 (by Champion) Add PointTrio + PointTrioList Add Sum() to PointPairList 14-Oct-2004 (by Champion) Add Location class Add Legend Float mode Add Expanded Collection object functions Remove(object), IndexOf(object), Insert() 13-Oct-2004 (by Champion) Change Frame class to Border Add CurveList.Remove( curve ) Add TextItem( string, float, float, CoordType ) 12-Oct-2004 (by Champion) Make CurveItem an abstract base class & add BarItem & LineItem Fix BaseDPI problem, get rid of the BaseDPI property Speed up Symbol draws using GraphicsPath & transform scaling Add Frame and Fill Classes Add DrawLegendKey() to BarItem & LineItem 7-Oct-2004 (by Champion) Add MinorGrids IsZeroLine defaults to false for X axis GetRange widens range by ClusterScaleWidth/2 for non-ordinal bars 1-Oct-2004 (by Champion) FindNearestObject works for TextItems and ArrowItems Add SymbolType.Default and SymbolType.None 30-Sep-2004 (by Champion) Add CurveItem.IsVisible and CurveItem.IsLegendLabelVisible logic Fix the zero axis range bug 29-Sep-2004 (by Champion) Add FindNearestObject() method to GraphPane (still working on TextItem & ArrowItem) 24-Sep-2004 (by Champion) Add StringAlignment property to FontSpec 23-Sep-2004 (by Champion) Add AlignP type, and Axis.ScaleAlign property 22-Sep-2004 (by Champion) Eliminate legend entries for curves with blank labels 21-Sep-2004 (by Champion) Release 3.0 Fix grid so it's behind the bar/line fills 18-Sep-2004 (by Champion) More Constructors for Fill class, gradients/texture fills Add Fill.IsScaled and Fill.AlignH/V 15-Sep-2004 (by Champion/Vos) Fix roundoff problem that caused the last scale label to occasionally disappear Add SetMinSpaceBuffer() to GraphPane and Axis Add a check in MakeBrush() to make sure the rect width and height are at least 1.0 14-Sep-2004 (by Champion) Add gradient fills to symbol type Symbol Frame can now have different color than fill Fix problem with smoothed curve and fill Draw Axes after curves so curve fill doesn't cover up axis line Add Axis.MinSpace property 13-Sep-2004 (by Champion/Vos) Fix problem with brushes scaled to zero width rect Fix scale label width calc bug in CalcMaxLabels() Add Brush.Dispose() calls after MakeBrush() 12-Sep-2004 (by Champion) Add new Fill class to handle gradient fills Add "Area under curve" shading Add gradient Fill class to paneRect, axisRect, legend, bar, line 11-Sep-2004 (by Champion) Fix space allocation for rotated Axis Labels Add gradient fills for bars 1-Sep-2004 (by Champion) Fix grace so that it won't extend across negative/positive boundary Finish up #region's 31-Aug-2004 (by Champion) Added Curve Smoothing (Line.IsSmooth, Line.SmoothTension) Added PointPair.IsInvalid Added PointPair implicit cast to PointF 31-Aug-2004 (by Vos) Cleaned up some of the files, making the #region'ing more consistent (some files still need to be done) 30-Aug-2004 (by Champion) Fix single point plotting (bug in validity checking code) Fix calls to Transform() so that Transform(i,x) is only called for bar charts Fix XML Comments to get rid of error messages Change the AddPoints() methods of PointPairList to overloaded Add() Add a couple unit tests 30-Aug-2004 (by Vos) Added locking to the ZedGraphControl to make it thread safe Added a .AxisChange() method to the ZedGraphControl (it creates a new Graphics object every time it is called) Added a ZedGraphException class ZGC.Image now throws a ZedGraphException if the control has been disposed Added a ZGC.BeenDisposed property, which checks if the GraphPane is null. This probably should have a separate field in the ZGC called beenDisposed, but for now it doesn't. Projects now reference the main ZedGraph by using project references instead of direct .dll references 27-Aug-2004 (by Champion) Add MinGrace and MaxGrace Fix up overlapping labels with double PickScale() call 26-Aug-2004 (by Champion) Fix problem with zero/negative values on Y Log scale Add long unittest clean up unit test code to three fixtures 25-Aug-2004 (by Champion) Make constructors handle null values better Integrate multiple constructors so default usage is cleaner Move Default struct into each class (get rid of Def.cs) extensive additions to unittest 23-Aug-2004 (by Champion) Fix NaN handling so it doesn't cause exceptions 18-Aug-2004 (by Vos) Add Image property Add ColorSymbolRotator 17-Aug-2004 (by Champion) Fix overlapping labels logic for X vs Y axes Fix scaleFormat in copy constuctor Add Point indexer to CurveItem Fix problem with recursive loop for text label calcs 25-Jul-2004 (by Champion) Add XTargetSteps, YTargetSteps New Format for 10 power log scale labels Fixed drawing of log scales Improved logic for scale picking Add logic to reduce text labels if they are overlapping Added IsIgnoreMissing Added IsFontsScaled Fixed FindNearestPoint() for bars 16-Jul-2004 (by Vos) Add PointPair, PointPairList storage for data points 15-Jul-2004 Add Author/Revision XML tags 14-Jul-2004 Added LGPL 13-Jul-2004 (Release 1.5) Added AxisType.Ordinal Added Def.Ax.MaxTextLabels and made Text labels honor the Axis.Step setting Added GraphPane.IsFontsScaled Added GraphPane.BaseDPI for proper printer scaling Fixed broken logarithmic scales Fixed roundoff problems that caused minor cosmetic annoyances Fixed bad rendering of Y2 axis grid and tics Fixed zeroline flag Bars now work properly with XAxis.IsReverse and FindNearestPoint() Fixed other minor bugs 10-Jun-2004 (Release 1.4) Added Bar Charts Added FindNearestPoint() method Minor Bug Fixes Added zero-line when axis ranges from negative to positive Added ScaleFormatAuto property so the ScaleFormat can be manual even when the scale range is auto Added IsAxisRectAuto property so the AxisRect can be set manually 1-Mar-2004 (Release 1.3) Added Date-Time Axis capability Added Text Axis capability Added ReverseTransform() function (returns axis values associated with a mousePt location on the graph) Made some optimizations that dramatically increase the drawing speed for large datasets Updated code to implement ICloneable interface and copy constructor for primary classes Updated axis label code so that axis edge does not have to begin with a label (ex: axis min is 175, but first label is 200 and step is 50) (Only the ZedGraphControl source file has changed) 28-Nov-2003 (Release 1.2) Fixed the Axis.IsMinorOppositeTic bug (it wasn't working) Changed over the ZedGraph code so that it can also be a UserControl 13-Nov-2003 (Release 1.1) Fixed a minor bug in FontSpec.BoundingBox() calculation