[英]How can I change the Resources.resw?
我正在用C#和Xaml編寫Windows 8應用程序。
目前,我有兩個資源文件。
- 本地
---- de-DE
------ Resources.resw
---- en-ZH
------ Resources.resw
我正在像這樣加載Textparts:
private ResourceLoader _resources = new ResourceLoader();
_resources.GetString("Menu_Contacts")
現在這是我的問題,如何在運行時更改資源?
最簡單的方法是設置PrimaryLanguageOverride
屬性:
ApplicationLanguages.PrimaryLanguageOverride = "de-DE";
請注意,這將更改應用程序的語言,但是當前已加載的屏幕不會刷新。 要刷新當前屏幕上的文本,可以實現以下事件處理程序:
core.ResourceManager.Current.DefaultContext.QualifierValues.MapChanged
+= async (s, m) =>
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
settingsLanguageLabel.Text = core.ResourceManager.Current.MainResourceMap.GetValue("Resources/SettingsLanguageLabel/Text").ValueAsString;
settingsRestartLabel.Text = core.ResourceManager.Current.MainResourceMap.GetValue("Resources/SettingsRestartLabel/Text").ValueAsString;
});
};
您可以直接訪問資源密鑰:
Properties.Resources.myResourceKey = "new value";
或者您可以重寫密鑰:
resourceWriter = new ResXResourceWriter(Server.MapPath("/App_GlobalResources/Resource.resx"));
foreach (var cnes_ in _ResList)
{
resourceWriter.AddResource(cnes_.Key, cnes_.Value);
}
resourceWriter.Close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.