Il menu principale del mio programma utilizza uno ContextMenu
composto da MenuItems
. Durante la localizzazione del mio programma (usando i dizionari delle risorse), ho impostato uno DynamicResource
come il Header
di ciascuno dei miei MenuItems
. Stranamente DynamicResource
compila, ma non sembra influenzare alcuna modifica durante la localizzazione (la lingua sullo Headers
non cambia).Perché MenuItem non funziona con DynamicResource?
Esempio di 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>
Quali sono i vincoli del controllo MenuItem
? Dovrebbe funzionare con DynamicResource
? Il mio obiettivo generale è quello di localizzare questi strings
, come faccio?
Questo programma è in WPF. Grazie.
UPDATE: Ecco come il mio I dizionari risorse si fa riferimento nel mio file App.xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Lang.en-US.xaml" />
</ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<Application.Resources>
UPDATE 2: La stringa di esempio nel mio dizionario Inglese Resource:
<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>
Aggiornamento 3: Un esempio f unzione per come posso cambiare il dizionario corrente delle risorse a Spagnolo:
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();
}
Hai guardato le raccomandazioni di Microsoft? http://msdn.microsoft.com/en-us/library/ms788718(v=vs.110).aspx –
Sì, ho visto questo. Se questa è l'unica soluzione sembra che potrebbe essere necessario utilizzare un altro metodo per il mio menu. –
Come state creando questo MenuItem? Dovrebbe funzionare. –