2012-01-20 5 views
2

私はよく知られているLocBamlの方法を使用して培養を変える。WPFウィンドウコンストラクタを使用してカルチャを変更できますか?

ここは正常に動作します:

public App() 
{ 
    // Test code 
    bool override_current_ui_language = true; 
    string locale = "es-ES"; 
    if (override_current_ui_language) 
    { 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo(locale); 
     Thread.CurrentThread.CurrentCulture = new CultureInfo(locale); 
    }  
} 

しかし、私はWPF Windowクラスのコントローラの下で同じを使用する場合、それは動作しません。

これは何故ですか?


私はこれを使用しますが、うまくいきません。

void cmbLanguages_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      string locale = "es-ES"; 
      Thread.CurrentThread.CurrentUICulture = new CultureInfo(locale); 
      Thread.CurrentThread.CurrentCulture = new CultureInfo(locale); 
     } 
+1

私はあなたをお勧めすることができますhttp://wpflocalizeextension.codeplex.com/切り替えが私のために正常に動作どこ... – ChrFin

+0

@chrfin実際にはI Easy BAMLを使用してください。それだけでなく、大丈夫です。私が望むのはwpfコンボボックスを使って言語を切り替えることです。 –

+1

申し訳ありませんが、私はLocalizeExtensionを使って(実行時に)正確に行うため、 "Easy BAML"を手助けできません... – ChrFin

答えて

1

私はそれにLocalizeExtensionを使用します。

あなただけのテキストを設定する {LocText NAMESPACE::RESOURCENAME}を使用して、その場で言語を変更するには、次の背後にあるコードでの.xamlで

Thread.CurrentThread.CurrentCulture = culture; 
Thread.CurrentThread.CurrentUICulture = culture; 
LocalizeDictionary.Instance.Culture = culture; 

あなたは、私がそれを使用するCodePlexに、上の私のプロジェクトを確認することができます、拡張された例を参照するには:
XAMLCodeBehind( - > SetUICulture)

+1

それはいくつかのアプリケーションで使用します。正しいリソースを作成しましたか? 'Resources.resx'は英語、' Resources.es.resx'はスペイン語です。 – ChrFin

+0

それは問題だった。 WPFローカライズエクステンションプロジェクトhttp://wpflocalizeextension.codeplex.com/を使用するための素晴らしいアドバイスをいただきありがとうございます –