有人能告诉我为什么会发生以下情况吗?红线表示注释应该定位的位置(沿X轴),但它总是在左边缘上渲染...我在Google和SO中进行了一些搜索,并且找到了一个答案,暗示PixelPositionToValue(Mouse.X)
会对它进行排序,但即使使用它,它也会完全相同。
Private Sub AssignNewDownTime()
Dim sStr As String = InputBox("Please enter downtime reason")
Dim annot As New Charting.RectangleAnnotation()
annot.ClipToChartArea = "Chart1"
annot.BackColor = Color.DarkRed
annot.ForeColor = Color.White
annot.AllowMoving = True
annot.AllowAnchorMoving = False
annot.AllowSelecting = False
annot.IsMultiline = False
annot.AllowTextEditing = False
annot.IsSizeAlwaysRelative = False
annot.X = Chart1.ChartAreas(0).AxisX.PixelPositionToValue(StartMousePoint.X)
annot.Y = 10
annot.Width = 25
annot.Text = sStr & " /X: " & annot.X & "Y:" & annot.Y
Chart1.Annotations.Add(annot)
Chart1.Invalidate()
End Sub
答案 0 :(得分:1)
尔加!总是会发生这种情况......我把头发拉了几个小时,然后在5分钟内将我的头发修好了。无论如何,对于可能也会脱发的后代,这就是解决方案:
注释X和Y不能设置为图表的注释,因此图表的范围是0.0到1.0,注释默认范围是0到100.梦魇!我有几种解决方法,我选择了:
annot.AxisX = Chart1.ChartAreas(0).AxisX
设置注释的X轴以模仿图表的X轴。因此,价值和限制是正确的。一旦我这样做,它立即工作。您当然可以设置注释的AxisY,但要注意在图表中Y从下到上。更多信息可以在这里找到:http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.annotation(v=vs.110).aspx - 具体(我希望我先读...):
注释通常用于评论或详细说明数据点等图表元素。注释也可用于绘制自定义形状。 默认情况下,注释使用相对坐标定位,(0,0)表示左上角,(100,100)表示图表图像的右下角。也可以从该相对坐标系切换到使用轴值的系统。使用轴坐标系,X和Y(表示注释左上角的位置)使用X轴和Y轴值设置,而不是0-100范围内的值。 指定注释的位置和大小时,有两种方法可以使用轴值: 将AxisX,AxisY或这两个注释属性设置为ChartArea对象的AxisX和AxisY属性值。 使用AnchorDataPoint属性将注释锚定到数据点。在这种情况下,会自动计算其定位。 所有注释都是从Annotation类派生的,可以用来设置所有Annotation对象共有的属性,例如颜色,位置,锚定等。
无论如何,希望这可以帮助民众。