0

vb.net を使用して、線形ウルトラチャートの X 軸のシリーズ ラベルをカスタマイズしようとしています。

Infragistics のドキュメントを調べたところ、次のコードを使用できることがわかりました。

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

利用可能なラベルの種類の説明は、こちらでご覧いただけます。ただし、期待した結果が得られません。「Row#1」を取得し、 「1」のみを取得したい。

私は、Infragistics フォーラムでのこの投稿の最初の返信で使用されたアプローチを試しました。これは、カスタマイズされたラベルでハッシュテーブルを使用することで構成されています。そこで使用されるコードは次のとおりです (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#」の後の番号を取得するためにこれらのラベルをカスタマイズする方法を知っている人はいますか?

4

2 に答える 2

0

わかった。FormatString プロパティについて詳しく説明します。このプロパティを使用している場合、表示する情報を決定できます (例: アイテム値またはデータ値またはシリーズ値)。もちろん、カスタム FormatString を使用するオプションもあります。例えば:

axisX2.Labels.ItemFormat=AxisItemLabelFormat.Custom; axisX2.Labels.ItemFormatString ="";

この場合、X 軸に日付を表​​すラベルがあるため、これら 2 つのプロパティを使用している場合は、日付形式を決定できます (たとえば、dd/MM/yyyy または MM/ddd/yy)。あなたのシナリオでは、X 軸に文字列値があります。これらの文字列値を下位レベルで変更できない場合 (たとえば、DataSource を UltraChart に設定する前に、データベースで TableAdapters SQL クエリ、DataSet を介して)、FillSceneGraph イベントを使用して Text プリミティブを変更できます。このイベントの詳細については、http://help.infragistics.com/Help/NetAdvantage/WinForms/2013.1/CLR4.0/html/Chart_Modify_Scene_Graph_Using_FillSceneGraph_Event.htmlを参照してください 。サンプルまたは追加の支援が必要な場合は、お気軽にお問い合わせください。当社の Web サイトに新しいフォーラム スレッドを作成する -http://www.infragistics.com/community/forums/
喜んでお手伝いさせていただきます。

于 2013-08-14T06:20:22.503 に答える