私はC#でSL5アプリケーションに取り組んでいます。私はそれを国際化しようとしています。Silverlight CurrentUulture/CurrentCultureを正しく設定する方法はありますか?
var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
DatePickerのようないくつかのコントロールがこれを選択するように見えます。私が 'd'形式の文字列を使ってdatetimeをフォーマットすると、デフォルトの形式 "M/dd/yyyy"が得られます。
SLはどのようにカルチャを解釈し、アプリケーション全体に対して正しく設定することができますか?
おかげ
UPDATE:
見つかり答え:すべての
まず、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);
}
まず、高速な答えてくれてありがとう。 SL5では、 'OverrideMetadata'メソッドがないようです。 CurrentCultureには 'IetfLanguageTag'プロパティも含まれていません... – rumblefx0
あなたは正しい方向に私を止めてくれました! – rumblefx0
ソートされているように見えます。あなたが見つけた情報で私の答えを更新しました。 – eandersson