簡體   English   中英

Telerik RadChart中未顯示零標簽

[英]Zero label is not displayed in Telerik RadChart

我正在使用Telerik RadChart繪制折線圖。 一切正常,除了零值未顯示為附件。

在此處輸入圖片說明在此處輸入圖片說明

是否存在負責此行為的外觀屬性?

我正在創建這樣的控件:

    /// <summary>
    /// builds the chart object
    /// </summary>
    /// <param name="chartSeriesItems">Series Items For index values</param>
    /// <param name="chartAvrageSeriesItems">Avrage 2 seies items for start and end</param>
    /// <returns></returns>
    private RadChart BuildChart(List<ChartSeriesItem> chartSeriesItems, List<ChartSeriesItem> chartAvrageSeriesItems)
    {
        RadChart chart = new RadChart();

        chart.ID = "SparklineChart";
        chart.Width = 200;
        chart.Height = 140;
        chart.DefaultType = ChartSeriesType.Line;
        chart.AutoLayout = true;
        chart.ChartTitle.Visible = false;

        chart.Appearance.Dimensions.Margins = ChartMargins.Parse("0px, 0px, 0px, 0px");
        chart.Appearance.Dimensions.Paddings = ChartPaddings.Parse("0px, 0px, 0px, 0px");
        chart.Appearance.Dimensions.AutoSize = true;
        chart.Appearance.Dimensions.Height = 140;
        chart.Appearance.Dimensions.Width = 200;
        chart.Appearance.FillStyle.FillType = FillType.Solid;
        chart.Appearance.FillStyle.MainColor = Color.Transparent;
        chart.Appearance.Border.Visible = false;


        chart.Legend.Visible = false;

        chart.PlotArea.XAxis.Visible = ChartAxisVisibility.False;
        chart.PlotArea.YAxis.Visible = ChartAxisVisibility.False;
        chart.PlotArea.Appearance.Dimensions.Margins = ChartMargins.Parse("0px, 0px, 0px, 0px");
        chart.PlotArea.Appearance.Dimensions.Paddings = ChartPaddings.Parse("0px, 0px, 0px, 0px");
        chart.PlotArea.Appearance.FillStyle.FillType = FillType.Solid;
        chart.PlotArea.Appearance.FillStyle.MainColor = Color.Transparent;
        chart.PlotArea.Appearance.Border.Visible = false;
        chart.PlotArea.EmptySeriesMessage.TextBlock.Appearance.AutoTextWrap = AutoTextWrap.True;
        chart.PlotArea.EmptySeriesMessage.TextBlock.Text = Resources.Text.NoData;


        //add series
        ChartSeries scoreSeries = new ChartSeries();
        scoreSeries.Name = "Score";
        scoreSeries.DefaultLabelValue = "#Y" + FormatText.GetFormat(Global.GetUserProfile().NumbersFormat, Global.GetUserProfile().DecimalDigits).Replace("0:", "");
        scoreSeries.Appearance.FillStyle.MainColor = Color.Black;
        scoreSeries.Appearance.LabelAppearance.Visible = true;
        scoreSeries.Type = ChartSeriesType.Line;
        scoreSeries.Items.AddRange(chartSeriesItems);

        ChartSeries avrageSeries = new ChartSeries();
        avrageSeries.Name = "Avrage";
        avrageSeries.DefaultLabelValue = "#Y" + FormatText.GetFormat(Global.GetUserProfile().NumbersFormat, Global.GetUserProfile().DecimalDigits).Replace("0:", "");
        avrageSeries.Appearance.FillStyle.MainColor = Color.Gray;
        avrageSeries.Appearance.LabelAppearance.Visible = true;
        avrageSeries.Type = ChartSeriesType.Line;
        avrageSeries.Appearance.LineSeriesAppearance.Width = 1;
        avrageSeries.Items.AddRange(chartAvrageSeriesItems);



        chart.Series.Add(scoreSeries);
        chart.Series.Add(avrageSeries);

        return chart;
    }

我正在添加這樣的值:

 ChartSeriesItem seriesItem = new ChartSeriesItem()
                            {
                                Name = "1",
                                XValue = index++,
                                YValue = 200
                            };
                        totalYValue += 200;
                        seriesItem.Label.Appearance.FillStyle.MainColor = SAObjectsUtilities.GetColorFromStatus(SA_Globals.Status.Blue);
                        //seriesItem.Label.TextBlock.Appearance.TextProperties.Color = SAObjectsUtilities.GetLabelForeGroundColor(item.ScoreStatus);
                        seriesItem.Label.TextBlock.Appearance.TextProperties.Font = new Font(new FontFamily("Arial"), 7);
                        seriesItem.Label.TextBlock.Appearance.TextProperties.Color = Color.Black;
                        chartSeriesItems.Add(seriesItem);




                        ChartSeriesItem seriesItem2 = new ChartSeriesItem()
                        {
                            Name = "2",
                            XValue = index++,
                            YValue = 0
                        };
                        totalYValue += 0;
                        seriesItem2.Label.Appearance.FillStyle.MainColor = SAObjectsUtilities.GetColorFromStatus(SA_Globals.Status.Red);
                        //seriesItem.Label.TextBlock.Appearance.TextProperties.Color = SAObjectsUtilities.GetLabelForeGroundColor(item.ScoreStatus);
                        seriesItem2.Label.TextBlock.Appearance.TextProperties.Font = new Font(new FontFamily("Tahoma"), 7);
                        seriesItem2.Label.TextBlock.Appearance.TextProperties.Color = Color.Black;
                        chartSeriesItems.Add(seriesItem2);

如果有人遇到相同的問題:

我最終使用了一個調整后的值(因此,如果該值為0,則使用0.001),因此它實際上會渲染該點(在我的情況下為Bar),然后使用我自己的字符串屬性作為標簽的值。

    private static decimal MIN_GRAPH_VALUE = new decimal(0.001);
    public decimal AjustedValue
    {
        get { return (_value.Equals(0)) ? MIN_GRAPH_VALUE : _value; }
    }
    public string StringValue
    {
        get { return _value.ToString("0.00%"); }
    }

對於BarSeries綁定:

<telerik:BarSeries Name="My value" Stacked="false" DataFieldY="AjustedValue">
    <Appearance>
        <FillStyle BackgroundColor="#92b622"></FillStyle>
    </Appearance>
    <LabelsAppearance ClientTemplate='#=dataItem.StringValue#' Position="OutsideEnd">
    </LabelsAppearance>
</telerik:BarSeries>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM