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