2D Chart for WinForms | ComponentOne
End-User Interaction / Rotating, Scaling, Translating, and Zooming / Creating a Zoom Effect
In This Topic
    Creating a Zoom Effect
    In This Topic

    To create a zoom effect with the chart, simply adjust the axis. For example, you can add two button controls (Zoom in and Zoom out buttons) to your application which will adjust the axis at run time when each is pressed. Here is a code example showing how to handle the Button_Click events to control zooming:

    To write code in Visual Basic

    Visual Basic
    Copy Code
    ' Controls zooming in      
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
        Dim xMin As Double = Me.C1Chart1.ChartArea.AxisX.Min
        Dim xMax As Double = Me.C1Chart1.ChartArea.AxisX.Max 
        Dim xChange As Double = (xMax - xMin) * 0.05  
        Me.C1Chart1.ChartArea.AxisX.Min = xMin + xChange 
        Me.C1Chart1.ChartArea.AxisX.Max = xMax - xChange 
        Dim yMin As Double = Me.C1Chart1.ChartArea.AxisY.Min()  
        Dim yMax As Double = Me.C1Chart1.ChartArea.AxisY.Max
        Dim yChange As Double = (yMax - yMin) * 0.05  
        Me.C1Chart1.ChartArea.AxisY.Min = yMin + yChange 
        Me.C1Chart1.ChartArea.AxisY.Max = yMax - yChange   
    End Sub
    '' Controls zooming out     
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click  
        Dim xMin As Double = Me.C1Chart1.ChartArea.AxisX.Min
        Dim xMax As Double = Me.C1Chart1.ChartArea.AxisX.Max
        Dim xChange As Double = (xMax - xMin) * 0.05 
        Me.C1Chart1.ChartArea.AxisX.Min = xMin - xChange  
        Me.C1Chart1.ChartArea.AxisX.Max = xMax + xChange
        Dim yMin As Double = Me.C1Chart1.ChartArea.AxisY.Min()
        Dim yMax As Double = Me.C1Chart1.ChartArea.AxisY.Max
        Dim yChange As Double = (yMax - yMin) * 0.05
        Me.C1Chart1.ChartArea.AxisY.Min = yMin - yChange
        Me.C1Chart1.ChartArea.AxisY.Max = yMax + yChange
    End Sub
    

    To write code in C#

    C#
    Copy Code
    '// Controls zooming in       
    private void button1_Click(object sender, System.EventArgs e)      
    {      
        double xMin = this.c1Chart1.ChartArea.AxisX.Min;  
        double xMax = this.c1Chart1.ChartArea.AxisX.Max; 
        double xChange = (xMax - xMin) * 0.05; 
        this.c1Chart1.ChartArea.AxisX.Min = xMin + xChange; 
        this.c1Chart1.ChartArea.AxisX.Max = xMax - xChange; 
        double yMin = this.C1Chart1.ChartArea.AxisY.Min();  
        double yMax = this.C1Chart1.ChartArea.AxisY.Max; 
        double yChange = (yMax - yMin) * 0.05; 
        this.c1Chart1.ChartArea.AxisY.Min = yMin + yChange; 
        this.c1Chart1.ChartArea.AxisY.Max = yMax - yChange;    
    }        
    '// Controls zooming out       
    private void button2_Click(object sender, System.EventArgs e)   
    {    
        double xMin = this.c1Chart1.ChartArea.AxisX.Min;   
        double xMax = this.c1Chart1.ChartArea.AxisX.Max; 
        double xChange = (xMax - xMin) * 0.05; 
        this.c1Chart1.ChartArea.AxisX.Min = xMin - xChange; 
        this.c1Chart1.ChartArea.AxisX.Max = xMax + xChange;     
        double yMin = this.c1Chart1.ChartArea.AxisY.Min();  
        double yMax = this.c1Chart1.ChartArea.AxisY.Max; 
        double yChange = (yMax - yMin) * 0.05;  
        this.c1Chart1.ChartArea.AxisY.Min = yMin - yChange; 
        this.c1Chart1.ChartArea.AxisY.Max = yMax + yChange;    
    }
    
    See Also