我想用我的表格上的按钮放大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;
}
我想禁用mouseWheel事件并使用代码进行缩放。 –