【问题标题】:MS Charting Annotations refuse to align to mouse positionMS Charting Annotations 拒绝与鼠标位置对齐
【发布时间】:2014-08-18 15:27:55
【问题描述】:

谁能告诉我为什么会发生以下情况?红线表示注释 应该 的位置(沿 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

【问题讨论】:

    标签: vb.net annotations mschart


    【解决方案1】:

    啊!这总是会发生......我把头发拉了几个小时,在 SO 上发帖,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类,可用于设置所有Annotation对象共有的属性,如颜色、位置、锚定等。

    无论如何,希望这对人们有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 2011-05-13
      • 2013-08-30
      • 2017-04-01
      • 2014-09-10
      • 2015-08-15
      • 1970-01-01
      相关资源
      最近更新 更多