簡體   English   中英

添加Y軸最小值/最大值時無法放大MS圖表

[英]Can't zoom in MSchart when adding the Y axis minimum / maximum

每當我向Yaxis添加最小值/最大值時(chart1.ChartAreas [0] .AxisY.Minimum&\\ chart1.ChartAreas [0] .AxisY.Maximum)我將失去放大圖表的能力。

有辦法解決這個問題嗎?

有人知道縮放與最小/最大值相結合是否存在限制?

由於這里沒有答案,但最近對該主題發表評論,我在尋找同一問題的答案時找到了這個帖子,這就是我發現的問題。

檢查圖表區域光標的Interval和IntervalType值。 可以啟用縮放,但是您的間隔足夠大,使用最小值/最大值,您的圖表的整個范圍都會小於您可以選擇的間隔。

在我的情況下,我使用DateTime作為我的軸值類型,而我使用'自動'IntervalType我無法放大任何不到一天的時間 - 而我的圖表僅覆蓋10小時,因此縮放似乎被禁用。 我將IntervalType從'Auto'更改為'Seconds'(將Interval保持為1),這讓我可以放大我需要的細節級別。

以下應啟用縮放:

chart1.ChartAreas[0].CursorY.IsUserEnabled = true;
chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].AxisY.ScaleView.Zoomable = true;

在軸上設置最小值/最大值似乎確實阻止了用戶選擇的縮放。 我不確定您是要限制縮放還是提供初始縮放設置。 對於后者,請執行此操作,而不是在軸上使用min / ax:

chart1.ChartArea[0].AxisY.ScaleView.Zoom(min, max);

我無法驗證問題。
如果我設置最小值/最大值,我仍然可以縮放圖表,例如:

private void FillChart()
{
    var dt = new DataTable();
    dt.Columns.Add("X", typeof(double));
    dt.Columns.Add("Y", typeof(double));

    dt.Rows.Add(1, 3);
    dt.Rows.Add(2, 7);
    dt.Rows.Add(3, 2);
    dt.Rows.Add(4, 1);
    dt.Rows.Add(5, 5);
    dt.Rows.Add(6, 9);
    dt.Rows.Add(7, 0);

    this.chart1.Series.Clear();

    this.chart1.DataSource = dt;
    var series = this.chart1.Series.Add("MYSERIES");
    series.XValueMember = "X";
    series.YValueMembers = "Y";

    // set a custom minimum and maximum
    chart1.ChartAreas[0].AxisY.Minimum = -10;
    chart1.ChartAreas[0].AxisY.Maximum = 10;

    chart1.ChartAreas[0].CursorY.IsUserEnabled = true;
    chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
    chart1.ChartAreas[0].AxisY.ScaleView.Zoomable = true; 
}

這對我來說非常好。

你做了不同的事嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM