[英]How to change ZedGraph Y axis order?
我有一个带有多个Y轴的ZedGraph
控件,并且我想允许用户更改Y轴的显示顺序。
不幸的是没有Move
的上法YAxisList
的对象GraphPane
,就像它存在于CurveList
。
YAxisList
上的索引器为只读。 我不能使用良好的旧交换片段来交换列表中的轴。
我该如何进行?
我实现了一个受CurveList
的Move
方法启发的扩展方法。
陷阱是现有曲线的Y轴索引需要相应地更新。
public static int Move(this YAxisList list, GraphPane pane, int index, int relativePos)
{
if (index < 0 || index >= list.Count)
return -1;
var axis = list[index];
list.RemoveAt(index);
var newIndex = index + relativePos;
if (newIndex < 0)
newIndex = 0;
if (newIndex > list.Count)
newIndex = list.Count;
list.Insert(newIndex, axis);
foreach (var curve in pane.CurveList)
if (curve.YAxisIndex == newIndex)
curve.YAxisIndex = index;
else if (curve.YAxisIndex == index)
curve.YAxisIndex = newIndex;
return newIndex;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.