我有一个带菜单的WPF程序。我设置菜单如下
<Menu Height="23" Name="menu" DockPanel.Dock="Top" VerticalAlignment="Top" ItemsSource="{Binding}">
<MenuItem Header="_File" Name="fileMenuItem">
<MenuItem Command="ApplicationCommands.New"/>
<MenuItem Command="ApplicationCommands.Open"/>
<MenuItem Command="ApplicationCommands.Save"/>
<MenuItem Command="ApplicationCommands.SaveAs"/>
<MenuItem Header="Save All" />
</MenuItem>
<MenuItem Header="_Edit" Name="editMenuItem">
<MenuItem Command="ApplicationCommands.Copy"/>
<MenuItem Command="ApplicationCommands.Cut"/>
<MenuItem Command="ApplicationCommands.Paste"/>
</MenuItem>
</Menu>
当程序运行时,我在菜单“文件”和“编辑”下的菜单项的输入手势文本有不同的区域设置。 “文件”下的项目是德语(例如Strg + N),但“编辑”下的项目是英语(例如Ctrl + C)。此外,所有标题都是德语(例如Öffnen)。我没有在代码中的任何地方设置任何与语言环境有关的内容。
我的系统是德语版Windows 7,英文版Visual Studio 2012。不确定这是否与它有关。
答案 0 :(得分:0)
要为程序设置系统默认语言,需要在App.xaml.cs中添加处理程序:
private void Application_Startup(object sender, StartupEventArgs e)
{
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag)));
}
在App.xaml中:
<Application ... Startup="Application_Startup">
设置特定的语言系统可以设置线程的参数:
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
但在您的情况下,很可能未使用德语语言安装附属程序集。
请参阅:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/9d3f9534-4a10-4860-90b5-d2ea5c967fca