【问题标题】:MSChartControl weird behaviour on selectionMSChartControl 选择时的奇怪行为
【发布时间】:2011-08-04 06:29:40
【问题描述】:

我在我的应用程序中使用 MSChartControl。在图表控件中,我显示一个图像,我想使用图表控件的选择机制从 ChartArea 中使用 CursorX 选择图像范围。

在 SelectionRangeChanged 事件中,我想在用户完成选择时收到通知,然后我想为尚未选择的区域着色并隐藏原始选择。

由于没有 ClearSelection(至少我还没有找到这样的方法),所以我将选择设置为光标在没有选择时最初具有的值:

private void chartTopoAP_SelectionRangeChanged(object sender, CursorEventArgs e)
{
    int Start = (int)e.NewSelectionStart;
    int End = (int)e.NewSelectionEnd;

    MathUtil.SwapIf(Start > End, ref Start, ref End);

    mySelectedRange = new Tuple<int, int>(Start, End);

    chartTopoAP.ChartAreas[0].CursorX.SetSelectionPosition(double.NaN, double.NaN);
    chartTopoAP.Invalidate();
    chartTopoAP.Update();
}

在绘画方法中我自己作画。

这似乎有效,除非我调整窗口和图表控件的大小。

1) 我启动窗口,然后选择一些东西 2)我调整图表控件的大小(更大/更小无关紧要) 3)我做另一个选择

-> 结果是,显然控件在内部缓冲了一些图形,并向我显示了调整控件大小之前的大小的图表。

如果我注释掉这一行

chartTopoAP.ChartAreas[0].CursorX.SetSelectionPosition(double.NaN, double.NaN);

它有效。但是我该如何清除选择呢?

谢谢 马丁

【问题讨论】:

    标签: .net mschart microsoft-chart-controls


    【解决方案1】:

    似乎与scaleview缩放设置有关。如果你添加

    chartTopoAP.ChartAreas[0].AxisX.ScaleView.ZoomReset();
    

    重置选择后,症状消失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 2011-03-06
      相关资源
      最近更新 更多