簡體   English   中英

如何在DevExpress XtraCharts中通過CultureInfo格式化貨幣?

[英]How to format currency by CultureInfo in DevExpress XtraCharts?

我正在以編程方式創建圖表,其方式類似於DevExpress網站上的此示例 我看到您可以在哪里識別要格式化為貨幣的系列數據,但是報告工具是基於全局的,因此需要能夠使用傳入的貨幣對各種圖表標簽進行格式化。

這是用於生成典型SeriesView的代碼示例:

private void FormatBarSeries (SideBySideBarSeriesView bar)
{
    bar.AxisY.NumericOptions.Format = NumericFormat.Currency;
    bar.AxisY.NumericOptions.Precision = 0;
    bar.AxisY.Title.Text = "Sample Bar";
    bar.AxisY.Title.Font = new Font(GetChartFontFamily(), 10.0f, FontStyle.Regular);
    bar.AxisY.Title.Visible = true;
    bar.AxisY.Tickmarks.Visible = false;
    bar.AxisY.Tickmarks.MinorVisible = false;
    bar.AxisX.Tickmarks.MinorVisible = false;
}

我似乎找不到任何方法來定義特定圖表的區域性。 每個報告可能包含多個圖表,但是報告上的所有圖表將使用相同的貨幣格式。

可以在報表級別設置它,並讓所有圖表繼承它嗎? 或者如何在逐個圖表的基礎上進行設置?

找到了答案,這表現在這里

您必須加入CustomDrawAxisLabel事件:

Chart.CustomDrawAxisLabel += Chart_CustomDrawAxisLabel;

您可以使用以下函數覆蓋代碼:

void Chart_CustomDrawAxisLabel (object sender, CustomDrawAxisLabelEventArgs e)
  {
    AxisBase axis = e.Item.Axis;
    if(axis.NumericOptions.Format == NumericFormat.Currency)
      {
        decimal value = 0.00M;
        e.Item.Text = decimal.TryParse(e.Item.AxisValue.ToString(),
                                        out value)
                         ? value.ToString("C0", _culture)
                         : e.Item.AxisValue.ToString();
      }
  }

使用班級其他地方定義的文化變量。

暫無
暫無

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

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