使用CultureInfo格式化C#图表轴

时间:2015-05-28 08:01:15

标签: c# charts

目前我使用N2格式设置我的图表的Y轴,如此

chart.ChartAreas[0].AxisY.LabelStyle.Format = "{0:N2}";

我想要实现的是N2使用的是印尼格式,我知道如何在对象转换中如下所示

sum.ToString("N2", CultureInfo.GetCultureInfo("id-ID"));

如何在格式化图表轴时应用CultureInfo?

2 个答案:

答案 0 :(得分:3)

您可以使用图表的FormatNumber事件。

private readonly CultureInfo indonesiaCulture = CultureInfo.GetCultureInfo("id-ID");
void chart1_FormatNumber(object sender, FormatNumberEventArgs e)
{
    if (e.ElementType == ChartElementType.AxisLabels)
    {
        e.LocalizedValue = e.Value.ToString("N2", indonesiaCulture);
    }
}

或者您可以更改UI线程的Thread.CurrentUICulture并设置LabelStyle.Format属性。我没有测试过,我相信这也应该有用。

答案 1 :(得分:1)

除了Sriram Sakthivel的回答。 您可以这样使用Format属性:

chart.ChartAreas[0].AxisY.LabelStyle.Format = "IndonesianNumericFormat";

void chart_FormatNumber(object sender, FormatNumberEventArgs e)
{
    switch (e.Format)
    {
        case "IndonesianNumericFormat":
            e.LocalizedValue = e.Value.ToString("N2", new CultureInfo("id-ID"));
            break;
    }
}

因此,您可以将不同的格式设置为不同的列,并将字符串转换的逻辑封装到类\ factory等。