0

我有一个带有菜单的 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。不确定这是否与它有关。

4

1 回答 1

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

于 2013-06-07T19:17:48.100 回答