Ich habe in meinem Projekt eine Sprachauswahloption programmiert, die MergedDictionaries und Projekteinstellungen verwendet. Das Problem ist die Sprache ändert sich erfolgreich nur in meinem MainWindow und nicht in anderen Windows sowie. Was mache ich falsch?
Set-Sprache func in Mainwindow (edit: MainWindow.cs):WPF - Sprachänderungen nur in MainWindow?
/*set language*/
private void SetLanguageDictionary()
{
ResourceDictionary dict = new ResourceDictionary();
if (Properties.Settings.Default.Language.Equals("en")) //english was set
{
dict.Source = new Uri("\\res\\enDictionary.xaml", UriKind.Relative);
}
else //otherwise - hebrew as default lang.
{
dict.Source = new Uri("\\res\\hebDictionary.xaml", UriKind.Relative);
}
//add required dictionary to the MergedDictionaries
Resources.MergedDictionaries.Add(dict);
}
Ein kleines Beispiel eines der Wörterbücher [sie sind symmetrisch gesetzt, wenn es darauf ankommt]:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:UI_WPF"
xmlns:system="clr-namespace:System;assembly=mscorlib">
<system:String x:Key="employees">Employees</system:String>
<system:String x:Key="employers">Employers</system:String>
<system:String x:Key="contracts">Contracts</system:String> </ResourceDictionary>
gibt es nicht genug Informationen, wenn Wörterbuch nicht hinzugefügt ist es unmöglich, es zu verwenden. Das bedeutet, dass Sie irgendwo das englische Wörterbuch zusammenführen, das dieses Problem verursacht. –