使用CultureInfo格式化C#图表轴

使用CultureInfo格式化C#图表轴,c#,charts,C#,Charts,目前我使用N2格式设置图表的Y轴,如下所示 chart.ChartAreas[0].AxisY.LabelStyle.Format = "{0:N2}"; 我想实现的是N2使用印尼格式,我知道如何在对象转换中进行转换,如下所示 sum.ToString("N2", CultureInfo.GetCultureInfo("id-ID")); 如何在格式化图表轴时应用CultureInfo?您可以使用图表的FormatNumber事件 private readonly CultureInfo i

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

chart.ChartAreas[0].AxisY.LabelStyle.Format = "{0:N2}";
我想实现的是N2使用印尼格式,我知道如何在对象转换中进行转换,如下所示

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

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

您可以使用图表的
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
属性。我还没有测试过它,我相信它也应该有效。

除了斯里拉姆·萨基维尔的答案之外。 可以通过以下方式使用“格式”属性:

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;
    }
}

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

您使用的是哪个图表组件?分享其文档的链接我使用的是visual studio 2013本身的图表组件,不是第三方组件Nice,运行良好,我已经接受了您的回答,谢谢