/// <summary> /// Sets the value of the scroll range properties (see <see cref="ScrollMinX" />, /// <see cref="ScrollMaxX" />, <see cref="YScrollRangeList" />, and /// <see cref="Y2ScrollRangeList" /> based on the actual range of the data for each corresponding <see cref="Axis" />. /// </summary> /// <remarks> /// This method is called automatically by <see cref="AxisChange" /> if /// <see cref="IsAutoScrollRange" /> /// is true. Note that this will not be called if you call AxisChange directly from the /// <see cref="GraphPane" />. For example, zedGraphControl1.AxisChange() works properly, but zedGraphControl1.GraphPane.AxisChange() does not. /// </remarks> public void SetScrollRangeFromData() { if (this.GraphPane != null) { double grace = this.CalcScrollGrace(this.GraphPane.XAxis.Scale._rangeMin, this.GraphPane.XAxis.Scale._rangeMax); this._xScrollRange.Min = this.GraphPane.XAxis.Scale._rangeMin - grace; this._xScrollRange.Max = this.GraphPane.XAxis.Scale._rangeMax + grace; this._xScrollRange.IsScrollable = true; for (int i = 0; i < this.GraphPane.YAxisList.Count; i++) { Axis axis = this.GraphPane.YAxisList[i]; grace = this.CalcScrollGrace(axis.Scale._rangeMin, axis.Scale._rangeMax); ScrollRange range = new ScrollRange( axis.Scale._rangeMin - grace, axis.Scale._rangeMax + grace, this._yScrollRangeList[i].IsScrollable); if (i >= this._yScrollRangeList.Count) { this._yScrollRangeList.Add(range); } else { this._yScrollRangeList[i] = range; } } for (int i = 0; i < this.GraphPane.Y2AxisList.Count; i++) { Axis axis = this.GraphPane.Y2AxisList[i]; grace = this.CalcScrollGrace(axis.Scale._rangeMin, axis.Scale._rangeMax); ScrollRange range = new ScrollRange( axis.Scale._rangeMin - grace, axis.Scale._rangeMax + grace, this._y2ScrollRangeList[i].IsScrollable); if (i >= this._y2ScrollRangeList.Count) { this._y2ScrollRangeList.Add(range); } else { this._y2ScrollRangeList[i] = range; } } // this.GraphPane.CurveList.GetRange( out scrollMinX, out scrollMaxX, // out scrollMinY, out scrollMaxY, out scrollMinY2, out scrollMaxY2, false, false, // this.GraphPane ); } }
/// <summary> /// Initializes a new instance of the <see cref="ZedGraphControl"/> class. Default Constructor /// </summary> public ZedGraphControl() { this.InitializeComponent(); // These commands do nothing, but they get rid of the compiler warnings for // unused events bool b = this.MouseDown == null || this.MouseUp == null || this.MouseMove == null; // Link in these events from the base class, since we disable them from this class. base.MouseDown += this.ZedGraphControl_MouseDown; base.MouseUp += this.ZedGraphControl_MouseUp; base.MouseMove += this.ZedGraphControl_MouseMove; // this.MouseWheel += new System.Windows.Forms.MouseEventHandler( this.ZedGraphControl_MouseWheel ); // Use double-buffering for flicker-free updating: this.SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer | ControlStyles.ResizeRedraw, true); // isTransparentBackground = false; // SetStyle( ControlStyles.Opaque, false ); this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); // this.BackColor = Color.Transparent; var asm = Assembly.GetExecutingAssembly(); var resNames = asm.GetManifestResourceNames(); foreach (var res in resNames) { if (res.Contains("ZedGraphLocale")) { var r = res.Substring(0, res.Length - 10); this._resourceManager = new ResourceManager(r, asm); break; } } Rectangle rect = new Rectangle(0, 0, this.Size.Width, this.Size.Height); this._masterPane = new MasterPane(string.Empty, rect); this._masterPane.Margin.All = 0; this._masterPane.Title.IsVisible = false; string titleStr = this._resourceManager.GetString("title_def"); string xStr = this._resourceManager.GetString("x_title_def"); string yStr = this._resourceManager.GetString("y_title_def"); // GraphPane graphPane = new GraphPane( rect, "Title", "X Axis", "Y Axis" ); GraphPane graphPane = new GraphPane(rect, titleStr, xStr, yStr); using (Graphics g = this.CreateGraphics()) { graphPane.AxisChange(g); // g.Dispose(); } this._masterPane.Add(graphPane); this.hScrollBar1.Minimum = 0; this.hScrollBar1.Maximum = 100; this.hScrollBar1.Value = 0; this.vScrollBar1.Minimum = 0; this.vScrollBar1.Maximum = 100; this.vScrollBar1.Value = 0; this._xScrollRange = new ScrollRange(true); this._yScrollRangeList = new ScrollRangeList(); this._y2ScrollRangeList = new ScrollRangeList(); this._yScrollRangeList.Add(new ScrollRange(true)); this._y2ScrollRangeList.Add(new ScrollRange(false)); this._zoomState = null; this._zoomStateStack = new ZoomStateStack(); }