Как правильно установить Silverlight CurrentUICulture / CurrentCulture?

Я работаю над приложением SL5 с C # и хочу его интернационализировать. Я нашел следующее, чтобы установить культуру пользовательского интерфейса:

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

Некоторые элементы управления, такие как DatePicker, похоже, улавливают это. Однако если я отформатирую любое datetime, используя строку формата '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);
}
7
задан Peter Wone 4 January 2013 в 01:30
поделиться