gpt4 book ai didi

c# - 如何对齐两个(或更多)图表的大小、滚动和网格

转载 作者:太空宇宙 更新时间:2023-11-03 21:03:54 32 4
gpt4 key购买 nike

我有三个信号(电压门、电流和能量)指的是同一周期。我在两张图上打印数据:一张有电压(蓝色)和电流(红色),另一张只有能量(橙色)。它们是两个不同的图,但在实践中,它们共享相同的 X 轴。

我有两个与鼠标移动同步的光标,作为两个图形的一个光标,基于光标位置的工具提示显示三个信号的当前选定值(所有三个系列都具有 IsXValueIndexed = true 和 interval = 1).如您所见,它们运行良好:

我有两个问题:

1) 当我开始缩放时,它们在图表区域的网格对齐和大小方面开始有所不同。在始终使用“更改”事件注册最后一个点后,当用户释放鼠标左键时,“更改”事件将触发并执行以下工作:我根据源名称强制缩放对面的图形。

dlChart_SelectionRangeChange(object sender, CursorEventArgs e){            
var source = sender as Chart;
double sp = selection_point.getStartPoint();
double ep = selection_point.getEndPoint();
double tmp = 0;

if (sp == ep)
return;
if (sp > ep)
{// zoom contrario
tmp = sp;
sp = ep;
ep = tmp;
}

switch (source.ChartAreas[0].Name)
{
case CHARTAREA1_NAME:
dlChart2.ChartAreas[0].AxisX.ScaleView.Zoom(sp, ep);
break;
case CHARTAREA2_NAME:
dlChart.ChartAreas[0].AxisX.ScaleView.Zoom(sp, ep);
break;
default: break;
}
}

下图描述了问题:

2) 放大一张图表后会出现一个滚动条,此时用户只能在一张图表上更改图 TableView 。我也想以相同的方式滚动其他图表。

我一直希望这两个图表表现得像一个图表。

最佳答案

我建议只使用一个 图表。您可以向其中添加第二个 ChartArea 并使其成为您的第三个系列正在使用的。

给定相同的 x 轴,这应该是最简单和最干净的解决方案。

要启用滚动,像往常一样需要设置这些属性:

        ChartArea ca1 = chart1.ChartAreas[0];
ChartArea ca2 = chart1.ChartAreas[1];

Axis ax1 = ca1.AxisX;
Axis ax2 = ca2.AxisX;

series3.ChartArea = ca2.Name;

ax1.ScaleView.Zoomable = true;
ax2.ScaleView.Zoomable = true;

ca1.CursorX.IsUserSelectionEnabled = true;
ca2.CursorX.IsUserSelectionEnabled = true;

要保持两个 ChartAreas 同步,这就足够了:

private void chart1_AxisViewChanged(object sender, ViewEventArgs e)
{
ChartArea ca1 = chart1.ChartAreas[0];
ChartArea ca2 = chart1.ChartAreas[1];
Axis ax1 = ca1.AxisX;
Axis ax2 = ca2.AxisX;

if (e.Axis== ax1) { ax2.ScaleView.Size = ax1.ScaleView.Size;
ax2.ScaleView.Position = ax1.ScaleView.Position; }
if (e.Axis== ax2) { ax1.ScaleView.Size = ax2.ScaleView.Size;
ax1.ScaleView.Position = ax2.ScaleView.Position; }
}

enter image description here

关于c# - 如何对齐两个(或更多)图表的大小、滚动和网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42583912/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com