c# - WPFウィンドウコンストラクターを使用してカルチャを変更できますか?

c# .net wpf locbaml

私はよく知られたLocBamlアプローチを使用して文化を変えます。

ここでうまくいきます:

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ウィンドウクラスコントローラーで同じものを使用すると、機能しません。

なぜそれが何かの手掛かりですか?



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

void cmbLanguages_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            string locale = "es-ES";
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(locale);
            Thread.CurrentThread.CurrentCulture = new CultureInfo(locale);
        }
答え
そのためにLocalizeExtensionを使用します。

.xamlでは、{LocText NAMESPACE::RESOURCENAME}を使用してテキストを設定し、次のコードでその場で言語を変更します。

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


私が使用しているCodeplexで私のプロジェクトをチェックして、拡張された例を見ることができます。
XAMLおよびCodeBehind(-> SetUICulture)
関連記事

c# - C#ComboBox SelectedValueはフォーカスが失われるとリセットされます

c# - DebuggerDisplay属性を使用してビットマスクを表す方法

c# - C#およびMagentostoreを使用した製品のダウンロード

c# - MVC Mini Profiler-LINQオーバーヘッド

c# - C#MySqlConnector 6.4.4 LAST_INSERT_ID()As INT64?

c# - msiインストール後にexeを実行すると、起動チェックボックスが表示されますが、アプリが実行されません

c# - 0MQ Windows GUIのベストプラクティス

c# - Couchbaseのデフォルトのアイテムサイズを変更するにはどうすればよいですか?

c# - Nunit SetupUpFixture構文

c# - Silverlightをクリックしたときにトグルボタンの画像を変更する