2013-07-24 74 views
-1

我想用我的表格上的按钮放大zedgraphcontrol 为mouseWheel提供的相同缩放...我不知道如何。 我已经从zedgraph源代码复制了一些代码,但只是缩小出正常工作。Zedgraphcontrol缩放代码

当我通过德尔塔-1时,它应该缩小...它的工作原理正确。 但是当我通过Delta 1时,它应该放大......但它没有。 有什么想法?

private void Zoom(int Delta, int ZoomStepFraction) 
    { 
     if ((zedGraphControl1.IsEnableVZoom || zedGraphControl1.IsEnableHZoom) && zedGraphControl1.MasterPane != null) 
     { 
      GraphPane pane = zedGraphControl1.GraphPane; 
      if (pane != null && Delta != 0) 
      { 
       PointF centerPoint = new PointF(zedGraphControl1.Size.Width/2, zedGraphControl1.Size.Height/2); 
       double zoomFraction = (1 + (Delta < 0 ? 1.0 : -1.0) * ZoomStepFraction); 

       zedGraphControl1.ZoomPane(pane, zoomFraction, centerPoint, false); 

       ApplyToAllPanes(pane); 

       using (Graphics g = this.CreateGraphics()) 
       { 
        // always AxisChange() the dragPane 
        pane.AxisChange(g); 

        foreach (GraphPane tempPane in zedGraphControl1.MasterPane.PaneList) 
        { 
         if (tempPane != pane && (zedGraphControl1.IsSynchronizeXAxes || zedGraphControl1.IsSynchronizeYAxes)) 
          tempPane.AxisChange(g); 
        } 
       } 

       zedGraphControl1.Refresh(); 

      } 
     } 
    } 


    private void ApplyToAllPanes(GraphPane primaryPane) 
    { 
     foreach (GraphPane pane in zedGraphControl1.MasterPane.PaneList) 
     { 
      if (pane != primaryPane) 
      { 
       if (zedGraphControl1.IsSynchronizeXAxes) 
        Synchronize(primaryPane.XAxis, pane.XAxis); 
       if (zedGraphControl1.IsSynchronizeYAxes) 
        Synchronize(primaryPane.YAxis, pane.YAxis); 
      } 
     } 
    } 


    private void Synchronize(Axis source, Axis dest) 
    { 
     dest.Scale.Min = source.Scale.Min; 
     dest.Scale.Max = source.Scale.Max; 
     dest.Scale.MajorStep = source.Scale.MajorStep; 
     dest.Scale.MinorStep = source.Scale.MinorStep; 
     dest.Scale.MinAuto = source.Scale.MinAuto; 
     dest.Scale.MaxAuto = source.Scale.MaxAuto; 
     dest.Scale.MajorStepAuto = source.Scale.MajorStepAuto; 
     dest.Scale.MinorStepAuto = source.Scale.MinorStepAuto; 
    } 
+0

我想禁用mouseWheel事件并使用代码进行缩放。 –

回答

0

按序禁用MouseWheel Zoom Event

zedGraphControl1.IsEnableWheelZoom = false; 

&

Zedgraph配备了变焦作为默认的功能,如:平移,放大,缩小出,可根据要求定制。

enter image description here

+0

如果你检查缩放按钮的类型,你会发现它是一个鼠标按钮,但我想要的是我的窗体上的一个按钮。但仍然以任何方式回答你的答案。 –

+0

上面显示的图片只是一个示例,我试图表达它具有默认的所有缩放功能,我不明白你为什么要使用按钮? – SanVEE