Hallo Community,
nach längerer Zeit Pause (ne Spaß, hab mich an PowerShell ausgetobt ) hab ich mal wieder eine Frage.
Ich habe eine Anwendung die Mehrsprachig sein soll. Das funktioniert auch so weit ganz gut mit .xaml und dynamischen Ressourcen...
Jetzt habe ich eine ComboBox um die Farben (Accent/AppTheme von MahApps) zu ändern. (Ähnlich wie bei Hurricane).
Um den anzuzeigenden Text zu Übersetzten verwende ich einen IValueConverter der den Text entsprechend der eingestellten Sprache anpassen soll... Mein Code sieht wie folgt aus:
Settings.xaml
IValueConverter - TranslateAccentName
IValueConverter - TranslatedAppTheme
Beim Ändern der Sprache in den Einstellungen rufe ich folgenden Code auf, damit die Elemente der ComboBox Refreshed werden und somit erneut vom IValueConverter diese übersetzt...
Code zum triggern des Converters in der ComboBox
Jetzt zu meinem Problem... Wenn ich die Sprache änder, wird die Liste übersetzt. Nur das Ausgewählte Element in der ComboBox wird nicht "geuptaded/refreshed"
Hat hier jemand eine Lösung für oder kann mir einen Denkanstoß geben? Bin so langsam am verzweifeln
Achja, bei Hurricane wird auch nur die Liste geupdated und nicht das ausgewählte Element... hab mir den Code schon auf GitHub angesehen und damit bisschen herumexperimentiert.
Vielen Dank
C-Sharp
nach längerer Zeit Pause (ne Spaß, hab mich an PowerShell ausgetobt ) hab ich mal wieder eine Frage.
Ich habe eine Anwendung die Mehrsprachig sein soll. Das funktioniert auch so weit ganz gut mit .xaml und dynamischen Ressourcen...
Jetzt habe ich eine ComboBox um die Farben (Accent/AppTheme von MahApps) zu ändern. (Ähnlich wie bei Hurricane).
Um den anzuzeigenden Text zu Übersetzten verwende ich einen IValueConverter der den Text entsprechend der eingestellten Sprache anpassen soll... Mein Code sieht wie folgt aus:
XML-Quellcode
- <ComboBox x:Name="ComboBoxAppTheme"
- VerticalAlignment="Top"
- Margin="0,5,0,0"
- SelectionChanged="ComboBoxAppTheme_SelectionChanged"
- ItemsSource="{x:Static metro:ThemeManager.AppThemes}"
- >
- <ComboBox.ItemTemplate>
- <DataTemplate>
- <TextBlock Text="{Binding Converter={StaticResource Converter_TranslateAppThemeName}, ConverterParameter='Name'}" />
- </DataTemplate>
- </ComboBox.ItemTemplate>
- </ComboBox>
- <TextBlock Margin="0,5,0,0" Text="{DynamicResource LocalizedString_Accent}" />
- <ComboBox x:Name="ComboBoxAppAccent"
- Margin="0,5,0,0"
- SelectionChanged="ComboBoxAppAccent_SelectionChanged"
- ItemsSource="{x:Static metro:ThemeManager.Accents}" >
- <ComboBox.ItemTemplate>
- <DataTemplate>
- <DockPanel>
- <Rectangle Width="16"
- Height="16"
- Margin="0,0,10,0"
- Fill="{Binding Converter={StaticResource Converter_AccentToBrush} ,ConverterParameter='Name' }"/>
- <TextBlock Text="{Binding Converter={StaticResource Converter_TranslateAccentName}, ConverterParameter='Name'}" />
- </DockPanel>
- </DataTemplate>
- </ComboBox.ItemTemplate>
- </ComboBox>
C#-Quellcode
- /* translate the name of the accent */
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
- {
- Accent accent = value as Accent;
- string accentName = Application.Current.Resources["LocalizedString_Accent_" + accent.Name] as string;
- if (string.IsNullOrEmpty(accentName))
- accentName = accent.Name;
- return accentName;
- }
C#-Quellcode
- /* translate the name of the app theme */
- public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
- {
- AppTheme appTheme = value as AppTheme;
- string themeName = Application.Current.Resources["LocalizedString_AppTheme_" + appTheme.Name] as string;
- if (string.IsNullOrEmpty(themeName))
- themeName = appTheme.Name;
- return themeName;
- }
Beim Ändern der Sprache in den Einstellungen rufe ich folgenden Code auf, damit die Elemente der ComboBox Refreshed werden und somit erneut vom IValueConverter diese übersetzt...
C#-Quellcode
Jetzt zu meinem Problem... Wenn ich die Sprache änder, wird die Liste übersetzt. Nur das Ausgewählte Element in der ComboBox wird nicht "geuptaded/refreshed"
Hat hier jemand eine Lösung für oder kann mir einen Denkanstoß geben? Bin so langsam am verzweifeln
Achja, bei Hurricane wird auch nur die Liste geupdated und nicht das ausgewählte Element... hab mir den Code schon auf GitHub angesehen und damit bisschen herumexperimentiert.
Vielen Dank
C-Sharp
NETworkManager - A powerful tool for managing networks and troubleshoot network problems!