如何自定义Infragistics Ultrachart的标签?

时间:2013-08-09 09:28:18

标签: vb.net infragistics

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

我查看documentation from Infragistics并发现我可以使用此代码:

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

可以看到有关可用标签类型的说明here。 但是,我没有得到我预期的结果。我得到“第一排”,我想只获得“1”

我已尝试在Infragistics论坛的this post的第一个回复中使用的方法,该方法包括使用带有自定义标签的哈希表。这里使用的代码如下(在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;
    }
}

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

任何人都知道如何自定义这些标签以获取“Row#”之后的数字?

2 个答案:

答案 0 :(得分:0)

有不同的方法可以解决这个问题。一种可能的解决方案是,如果您正在使用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");
            }
        }
    }

答案 1 :(得分:0)

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

axisX2.Labels.ItemFormat = AxisItemLabelFormat.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/
我很乐意帮助你。