Skalieren der X-Achse

In diesem Beispiel kann die X-Achse durch Eingaben skaliert werden, sodass ein anderer Wertebereich genutzt wird. Dabei werden die Werte der Klasse IndexScaling, welches als SubMember in dem AcquisitionInterpreter liegt, bearbeitet. Mit dem Offset kann der Wertebereich verschoben werden. Der Offset stellt dabei den Anfangswert des Wertebereichs dar. Mit dem Scalefactor kann der Wertebereich anders skaliert werden. Der Wert wird mit dem Wertebereich multipliziert.

private void tbXScale_TextChanged(object sender, EventArgs e)
{
    foreach(Chart chart in scopeProjectPanel.ScopeProject.SubMember.OfType<Chart>())
    {
        foreach(AxisGroup ag in chart.SubMember.OfType<AxisGroup>())
        {
            foreach(Channel channel in ag.SubMember.OfType<Channel>())
            {
                foreach(AcquisitionInterpreter ai in channel.SubMember.OfType<AcquisitionInterpreter>().Where(x => x.Orientation == TwinCAT.Measurement.Scope.API.AxisOrientation.Y))
                {
                    IndexScaling indexScaling = ai.SubMember.OfType<IndexScaling>().First();
                    double factor = 0;
                    double.TryParse(tbXScale.Text, out factor);
                    indexScaling.ScaleFactor = factor;
                }
            }
        }
    }
}

private void tbXOffset_TextChanged(object sender, EventArgs e)
{
    foreach (Chart chart in scopeProjectPanel.ScopeProject.SubMember.OfType<Chart>())
    {
        foreach (AxisGroup ag in chart.SubMember.OfType<AxisGroup>())
        {
            foreach (Channel channel in ag.SubMember.OfType<Channel>())
            {
                foreach (AcquisitionInterpreter ai in channel.SubMember.OfType<AcquisitionInterpreter>().Where(x => x.Orientation == TwinCAT.Measurement.Scope.API.AxisOrientation.Y))
                {
                    IndexScaling indexScaling = ai.SubMember.OfType<IndexScaling>().First();
                    double offset = 0;
                    double.TryParse(tbXOffset.Text, out offset);
                    indexScaling.Offset = offset;
                }
            }
        }
    }
}