2011-10-27 79 views
1

我正在看到最奇怪的事情。在VS 2010調試器中運行我們的程序時,我可以切換使用我們其他文化的任何資源字符串,並且它們在UI中加載得很好。但是,當作爲獨立的WPF應用程序構建和運行時,文本框中只有數字(0.000 - > 0,000)正在改變。我們使用動態復位到另一種文化的代碼是:未在WPF應用程序中加載本地化的字符串資源

private void ResetCulture(string culture) 
    { 
     // Reset the culture and reload the resources 
     var ci = new CultureInfo(culture); 
     Thread.CurrentThread.CurrentCulture = ci; 
     Thread.CurrentThread.CurrentUICulture = ci; 
     Messenger.Default.Send<CultureInfo>(ci); 
    } 

注:斜挎來自MVVM光工具包(我們使用WPF和Silverlight中的代碼)。最後,我應該提到這個代碼在Silverlight下工作得很好。

任何人都知道爲什麼WPF不通過加載新文化的資源字符串合作?

感謝, 丹

+0

資源從哪裏來?如果取消選中Debug下的項目屬性中的「啓用Visual Studio託管進程」複選框,您是否在VS中運行時看到不同的行爲?我問,因爲這會導致行爲上的差異。當選中時,VS會預載所有引用的程序集。當它沒有被選中時,它更像是正常的運行時,只有被使用的程序集被加載。 – AndrewS

+0

資源是來自.resx文件的所有字符串資源,其中Forms.resx是父級和Forms。 .resx是所有孩子(以及Forms.Designer.cs文件)。我檢查了我們的WPF項目的調試設置,並且「啓用Visual Studio託管過程」選項已被取消選中。其他想法? – Lu10ntDan

+0

您在調試器中運行時提到。在沒有附加調試器的情況下在VS中運行時,它會工作嗎?即Ctrl + F5因此,VS正在爲您生成資源程序集 - 即您的子文件夾像de-DE \ fooassembly.resources.dll。你是否分發這些文件並保持相同的文件夾結構? – AndrewS

回答

0

您需要重新啓動應用程序。可以將新資源加載到內存中。

antonio

相關問題