Menu główne mojego programu wykorzystuje numer ContextMenu
złożony z MenuItems
. Podczas lokalizacji mojego programu (przy użyciu słowników zasobów) ustawiam DynamicResource
jako Header
każdego z moich MenuItems
. Dziwnie DynamicResource
kompiluje, ale nie wydaje się wpływać na jakiekolwiek zmiany podczas lokalizacji (język na Headers
się nie zmienia).Dlaczego menuItems nie działa z DynamicResource?
Przykład MenuItem
:
//I'm not sure if the x:Name or the PlacementRectangle is interfering with anything...
<ContextMenu x:Name="MainContextMenu" PlacementRectangle="{Binding RelativeSource={RelativeSource Self}}">
<MenuItem Header="{DynamicResource open}" />
</ContextMenu>
Jakie są ograniczenia kontroli MenuItem
? Czy ma działać z DynamicResource
? Moim ogólnym celem jest zlokalizowanie tych strings
, jak to zrobić?
Ten program jest w WPF. Dziękuję Ci.
UPDATE: ten sposób moi Słowniki zasobów są odniesione w moim App.xaml pliku:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Lang.en-US.xaml" />
</ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<Application.Resources>
UPDATE 2: Przykład ciąg w moim angielskim zasobów słownika:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<sys:String x:Key="open">Open</sys:String>
</ResourceDictionary>
Aktualizacja 3: Przykład f namaszczenie na jak zmienić aktualny zasób słownika na hiszpańskim:
private void spanishChange_Click(object sender, RoutedEventArgs e)
{
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(
(ResourceDictionary)Application.LoadComponent(new Uri("LangspES.xaml", UriKind.Relative)));
LanguageChange.FireLanguageChanged();
}
Pan spojrzał na zaleceń Microsoftu? http://msdn.microsoft.com/en-us/library/ms788718(v=vs.110).aspx –
Tak, widziałem to. Jeśli jest to jedyne rozwiązanie, wygląda na to, że potrzebuję użyć innej metody dla mojego menu. –
Jak tworzysz ten MenuItem? Powinno działać. –