使用 CultureInfo 格式化 C# 图表轴
Formatting C# Chart Axis Using CultureInfo
目前我使用这样的 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
属性。我没有测试过,我相信应该也可以。
除了 Sriram Sakthivel 的回答。
您可以这样使用格式 属性:
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;
}
}
所以,可以对不同的列设置不同的格式,将字符串转换逻辑封装到class\factory等
目前我使用这样的 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
属性。我没有测试过,我相信应该也可以。
除了 Sriram Sakthivel 的回答。 您可以这样使用格式 属性:
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;
}
}
所以,可以对不同的列设置不同的格式,将字符串转换逻辑封装到class\factory等