gpt4 book ai didi

c# - 如何正确设置 Silverlight CurrentUICulture/CurrentCulture?

转载 作者:太空狗 更新时间:2023-10-29 20:08:18 32 4
gpt4 key购买 nike

我正在使用 C# 开发 SL5 应用程序,我希望将其国际化。我发现以下设置 UI 文化:

var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;

某些控件(如 DatePicker)似乎可以识别这一点。但是,如果我使用“d”格式字符串格式化任何日期时间,我仍然会得到默认格式“M/dd/yyyy”。

SL 究竟如何解释区域性以及我如何为整个应用程序正确设置它?

谢谢

更新:

找到答案:

首先,在Application_Startup中设置合适的文化:

var culture = new CultureInfo("nl-BE");
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;

然而,关键要素是添加以下内容以强制 RootVisual 的文化/语言:

var root = RootVisual as Page;
if (root != null)
{
root.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
}

最佳答案

编辑:更新了@Rumble 找到的信息。

您需要像这样将它应用到您的 UI 对象。

首先在您的应用程序加载时设置适当的区域性。

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-IN");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-IN");

接下来您需要设置 XML 语言属性。

对于 Silverlight

var root = RootVisual as Page;
if (root != null)
{
root.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
}

对于 WPF

FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

您可以找到 WPF 的解释 here .

关于c# - 如何正确设置 Silverlight CurrentUICulture/CurrentCulture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9162050/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com