2010-09-13 30 views
0

我使用的是内置ApplicationCommands创建菜单:WPF:指定语言内置命令标签

<Menu DockPanel.Dock="Top"> 
    <MenuItem Header="_Datei"> 
     <MenuItem Command="ApplicationCommands.New" /> 
     <MenuItem Command="ApplicationCommands.Open" /> 
     <MenuItem Command="ApplicationCommands.Save" /> 
     <MenuItem Command="ApplicationCommands.SaveAs" /> 
     <Separator /> 
     <MenuItem Header="Been_den" Command="{StaticResource SchliessenCommand}" /> 
    </MenuItem> 
</Menu> 

ApplicationCommands显示的文本不同,取决于系统语言:上运行英语Windows 7,ApplicationCommands.New显示为“新”,而在德语Windows 7上显示为“Neu”。

由于应用程序的其余部分未本地化,因此我希望应用程序命令始终以德语显示。有没有办法做到这一点没有手动设置每个MenuItem的Header

回答

2

由于应用程序未本地化,因此您可以尝试始终将语言设置为德语;即CultureInfo.CurrentUICulture,它通常从OS继承(在任何窗口打开之前在应用程序启动或其他类似设置中)。

+0

好主意。不幸的是,为UI线程更改'CurrentUICulture'并没有什么区别。 – Heinzi 2010-09-15 11:59:11

+0

+1。我刚刚发现这个线程,这似乎暗示你的方法是正确的,但在英语Windows上,德语的附属程序集只是未安装:http://social.msdn.microsoft.com/Forums/en-US/ WPF /线程/ 9d3f9534-4a10-4860-90b5-d2ea5c967fca – Heinzi 2010-09-15 12:03:27

0

您应该使用绑定并将您的命令作为绑定对象(RelayCommands)操作,以避免对不同命令的标头进行硬编码。

+0

请详细说明:这将如何改变内置ApplicationCommand的行为? – Heinzi 2010-09-13 17:41:11