分组后图表区域不显示注释

问题描述 投票:0回答:2

我有两个注释文本和线条,想要使用 AnnotationGroup 类分组为单个注释。我使用了下面的代码:

Dim line As New HorizontalLineAnnotation
With line
    .IsSizeAlwaysRelative = False
    .ClipToChartArea = Chart1.ChartAreas(0).Name
    .IsInfinitive = True
    .LineColor = Color.Black
    .LineDashStyle = ChartDashStyle.Dash
    .LineWidth = 2
End With
Dim text As New TextAnnotation
With text
    .IsSizeAlwaysRelative = False
    .Text = "something"
    .ForeColor = line.LineColor
End With
Dim group As New AnnotationGroup
With group
    .AxisX = Chart1.ChartAreas(0).AxisX
    .AxisY = Chart1.ChartAreas(0).AxisY
    .AnchorX = 0
    .AnchorY = 10
    .Annotations.Add(line)
    .Annotations.Add(text)
End With
Chart1.Annotations.Add(group)

代码编译没有任何错误,但图表区域没有显示任何内容。 我无法弄清楚。 MSDN 也没有提到这一点。

谢谢。

vb.net mschart
2个回答
2
投票

恭喜,您是极少数使用AnnotationGroups的人之一。

它们对于将注释分组非常有用,以便您可以移动它们或隐藏和显示它们。不过,为了显示任何注释,您需要设置更多属性

最值得注意的是,所有注释都需要具有sizeposition。后者可以是值单位或位置百分比,并且可以是绝对的或带有或不带有偏移的锚定。您还可以混合使用这些系统!

这对于

Line- and Text- or RectangleAnnotations
来说是正确的,对于
AnnotationGroup
也是如此,所以在以某种方式设置尺寸和位置后,它们应该会显示出来。

请阅读所有相关属性的文档,以找出您想要哪种定位......! - 当您为注释组设置轴时,其位置将以轴单位表示。

请注意,

Annotations
的位置值是相对于它们所属的
AnnotationGroup

如果您需要更多帮助请直接说出来;我只做c#,但代码应该很容易翻译..


0
投票

我也遇到这个问题了。 AnnotaionGroup 的大小默认为 Null,因此不会显示在图表上。只需为 AnnotationGroup 的 Width 和 Height 属性提供一些适当的大小值即可。

 With group
        .Width = 10  'default value is Nan 
        .Height= 10  'default value is Nan
        .AxisX = Chart1.ChartAreas(0).AxisX
        .AxisY = Chart1.ChartAreas(0).AxisY
        .AnchorX = 0
        .AnchorY = 10
        .Annotations.Add(line)
        .Annotations.Add(text)
  End With
© www.soinside.com 2019 - 2024. All rights reserved.