[英]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.