如何自定义Infrastics Ultrachart的标签



我正在尝试使用vb.net自定义线性超级图表X轴的系列标签。

我查看了Infrasgistics的文档,发现我可以使用以下代码:

UltraChart.Axis.Y.Labels.SeriesLabels.FormatString = "<Item_Label>"

这里可以看到可用标签类型的描述。然而,我没有得到我所期望的结果。我得到"第1行",并且我只想得到1"

我在Infrastics论坛上尝试了这篇文章的第一个回复中使用的方法,其中包括使用带有自定义标签的哈希表。这里使用的代码如下(在C#中):

Hashtable labelHash = new Hashtable();
labelHash.Add("CUSTOM", new MyLabelRenderer());
ultraChart1.LabelHash = labelHash;
xAxis.Labels.ItemFormatString = "<CUSTOM>";
public class MyLabelRenderer : IRenderLabel
{
    public string ToString(Hashtable context)
    {
        string label = (string)context["ITEM_LABEL"];
        int row = (int)context["DATA_ROW"];
        int col = (int)context["DATA_COLUMN"];
        //use row, col, current label's text or other info inside the context to get the axis label.
        //the string returned here will replace the current label.
        return label;
    }
}

这种方法也不起作用。我使用的是Infrasgistics NetAdvantage 2011.1。

有人知道如何自定义这些标签以获得"第#行"后的数字吗?

有不同的方法来解决此任务。一个可能的解决方案是,如果您正在使用FillSceneGraph事件。通过这种方式,您可以获得TEXT基元并对其进行修改。例如:

 private void ultraChart1_FillSceneGraph(object sender, Infragistics.UltraChart.Shared.Events.FillSceneGraphEventArgs e)
    {
        foreach (Primitive pr in e.SceneGraph)
        {
            if (pr is Text  &&((Text)pr).labelStyle.Orientation == TextOrientation.VerticalLeftFacing )
            {
                pr.PE.Fill = Color.Red;
                ((Text)pr).SetTextString("My custom labels");
            }
        }
    }

好。我将尝试更深入地解释FormatString属性。使用此属性时,可以确定要显示的信息(例如:项目值或数据值或序列值)。当然,还有使用自定义FormatString的选项。例如:

axisX2.Labels.ItemFormat=轴ItemLabelFormat.Custom;axisX2.Labels.ItemFormatString=";

在这种情况下,我们在X轴上有表示日期的标签,因此如果您使用这两个属性,您可以确定日期格式(例如dd/MM/yyyy或MM/ddd/yy)。在您的场景中,X轴上有字符串值。如果您无法在较低级别修改这些字符串值(例如,在您的数据库中,通过TableAdapters SQL查询、DataSet,即在将DataSource设置为UltraChart之前),那么您可以使用FillSceneGraph事件并修改Text基元。有关此活动的更多详细信息,请访问http://help.infragistics.com/Help/NetAdvantage/WinForms/2013.1/CLR4.0/html/Chart_Modify_Scene_Graph_Using_FillSceneGraph_Event.html如果您需要样品或其他帮助,请毫不犹豫地在我们的网站上创建一个新的论坛线程-http://www.infragistics.com/community/forums/
我很乐意帮助你。

相关内容

  • 没有找到相关文章

最新更新