商信互联
在.NET应用程序中,货币,数字和日期等信息的格式设置选项与Thread.CurrentUICulture属性值指定的应用程序UI语言无关。默认情况下,使用在当前用户的操作系统中设置或由Internet浏览器传递的格式设置选项。您可以强制使用特定的格式区域性来代替默认格式,也可以自定义一些默认设置。
您可以使用XafApplication.SetFormattingCulture方法设置另一种格式设置,该方法将更改Thread.CurrentCulture值。以下代码演示了如何在Windows Forms应用程序项目的Program.cs(Program.vb)文件中执行此操作:
static void Main() {
// ...
MySolutionWindowsFormsApplication winApplication =
new MySolutionWindowsFormsApplication();
winApplication.SetFormattingCulture("de");
// ...
}
Public Shared Sub Main(ByVal arguments() As String)
' ...
Dim winApplication As New MySolutionWindowsFormsApplication()
winApplication.SetFormattingCulture("de")
' ...
End Sub
下图说明了结果。
类似地,您可以更改ASP.NET应用程序项目的Global.asax.cs(Global.asax.vb)文件的格式设置:
protected void Session_Start(Object sender, EventArgs e) {
WebApplication.SetInstance(Session, new MySolutionAspNetApplication());
WebApplication.Instance.SetFormattingCulture("de");
// ...
}
Protected Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
WebApplication.SetInstance(Session, New MySolutionAspNetApplication())
WebApplication.Instance.SetFormattingCulture("de")
' ...
End Sub
您可以在XafApplication.CustomizeFormattingCulture事件处理程序中覆盖默认格式设置选项。以下代码演示了如何在Windows Forms应用程序项目的Program.cs(Program.vb)文件中执行此操作:
public static void Main() {
//...
MySolutionWindowsFormsApplication winApplication = new MySolutionWindowsFormsApplication();
winApplication.CustomizeFormattingCulture =
new EventHandler<CustomizeFormattingCultureEventArgs>(
winApplication_CustomizeFormattingCulture);
// ...
}
static void winApplication_CustomizeFormattingCulture(
object sender, CustomizeFormattingCultureEventArgs e) {
e.FormattingCulture.NumberFormat.CurrencySymbol = "USD";
}
Public Shared Sub Main(ByVal arguments() As String)
'...
Dim winApplication As New MySolutionWindowsFormsApplication()
AddHandler winApplication.CustomizeFormattingCulture, _
AddressOf winApplication_CustomizeFormattingCulture
' ...
End Sub
Shared Sub winApplication_CustomizeFormattingCulture( _
ByVal sender As Object, ByVal e As CustomizeFormattingCultureEventArgs)
e.FormattingCulture.NumberFormat.CurrencySymbol = "USD"
End Sub
下图说明了实现上述代码之前和之后的货币符号:
下面的代码演示了如何覆盖ASP.NET应用程序项目的Global.asax.cs(Global.asax.vb)文件中的默认格式设置选项:
protected void Session_Start(Object sender, EventArgs e) {
WebApplication.SetInstance(Session, new MySolutionAspNetApplication());
WebApplication.Instance.CustomizeFormattingCulture = Instance_CustomizeFormattingCulture;
// ...
WebApplication.Instance.Setup();
WebApplication.Instance.Start();
}
Protected Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
WebApplication.SetInstance(Session, New MySolutionAspNetApplication())
WebApplication.Instance.CustomizeFormattingCulture = Instance_CustomizeFormattingCulture
' ...
WebApplication.Instance.Setup()
WebApplication.Instance.Start()
End Sub
下图说明了实现上述代码后的货币符号: