我有一個DropDown(使用MahApps,如果這很重要),我想用它在程序中「隨時」切換語言。用編程方式更改語言/資源w/WPF
語言類
namespace SAM
{
public class Language
{
public string Title { get; set; }
public string Culture { get; set; }
}
}
更改語言
private void DropLanguage_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
Language lang = DropLanguage.SelectedItem as Language;
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang.Culture);
}
我有我的所有字符串作爲資源Resources.resx
(默認)和Resources.en.resx
(英文)
3問題我不明白derstand
- 從下拉菜單中選擇「englisch」時,語言不會立即改變,但當我點擊某物時,否則,例如「關閉」(它詢問「確定?」),語言已經改變。
- 直接位於.xaml文件(如
<TextBlock Text="{x:Static p:Resources.Config_HeaderBar_Find_Speaker}" />
)中的字符串根本不會被更新。 - 獎勵:我將如何切換回默認語言,因爲
new CultureInfo(lang.Culture);
需要一個參數,而對於默認的我有Culture = null
(因爲Resources.resx沒有名稱)。更改文件Resources.default.resx
弄亂我的代碼有很多...
如果有任何的問題,可能是固定的,我會非常感激......