Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ZedGraph-如何在不使用鼠标的情况下在x,y点显示光标?_C#_Zedgraph - Fatal编程技术网

C# ZedGraph-如何在不使用鼠标的情况下在x,y点显示光标?

C# ZedGraph-如何在不使用鼠标的情况下在x,y点显示光标?,c#,zedgraph,C#,Zedgraph,我正在Zedgraph中绘制一条曲线,如下所示: GraphPane myPane = zgc.GraphPane; PointPairList list1 = new PointPairList(); for(int i =0; i<10; i++) list1.Add(i,i); LineItem myCurve = myPane.AddCurve("Title", list1, Color.Red, SymbolType.None)

我正在Zedgraph中绘制一条曲线,如下所示:

GraphPane myPane = zgc.GraphPane;
PointPairList list1 = new PointPairList();
for(int i =0; i<10; i++)
    list1.Add(i,i);            
LineItem myCurve = myPane.AddCurve("Title",
          list1, Color.Red, SymbolType.None);        

zgc.AxisChange();
zgc.Refresh();
SetCursor(myCurve, list1[3]);

了解曲线的特定点,可以使用该方法

因此,使用以下代码:

var myPoint = myCurve[3];
var screenPoint = myPane.GeneralTransform(myPoint.X, myPoint.Y, CoordType.AxisXYScale);
将坐标转换为屏幕上的特定点(以像素为单位)


然后,您需要找到一些更高级的方法(可能在windows窗体中…)将光标移动到该点。

下面是一个简单且更有效的示例,用于创建交叉光标,它是图形对象集合的一部分,因此您可以对其进行缩放和打印。它在“GraphObjList”集合中添加了两个“LineObj”。 代码:将光标放在第一条曲线的第10点

    Dim myPane As GraphPane = zg1.GraphPane    
    Dim myPoint As PointPair = myPane.CurveList.Item(0).Points(10)
    Dim CurseurV1 As New LineObj(Color.Blue, myPoint.X,myPane.YAxis.Scale.Min, myPoint.X, myPane.YAxis.Scale.Max)

    CurseurV1.Line.Width = 0.5
    myPane.GraphObjList.Add(CurseurV1)

    Dim CurseurH1 As New LineObj(Color.Blue, myPane.XAxis.Scale.Min,myPoint.Y, myPane.XAxis.Scale.Max, myPoint.Y)
    CurseurH1.Line.Width = 1
    myPane.GraphObjList.Add(CurseurH1)
完成了:使用ZedGraph.dll版本5.1.2.878,您的图形上会有一个蓝色的“十字”光标