我的申请多语种。单击相应的菜单项时,它会更改其语言。这工作正常但我的问题出现在我的父窗口没有改变它的语言(菜单在父窗口中)。所有子窗口都会改变他们的语言有没有办法强制窗口再次加载?我已经使用resx文件完成了我的应用程序,并检查了单击menuitem时Thread.CurrentThread.CurrentCulture
和Thread.CurrentThread.CurrentUICulture
的更改。
修改
我已经创建了自己的课程来完成多语言部分,这是本文的方法的改编:WPF Runtime Localization,它有效。以下是我的XAML代码的一部分,用于显示数据绑定:
<Window x:Class="Multilingual.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:properties="clr-namespace:Multilingual.Properties"
Height="350" Width="300" Name="mainWindow" ResizeMode="CanMinimize" SizeToContent="Manual" Closing="mainWindow_Closing" KeyDown="mainWindow_KeyDown">
和
<Menu Height="22" Name="menu" Width="{Binding ElementName=mainWindow, Path=Width}" HorizontalAlignment="Left" VerticalAlignment="Top" Background="Snow" BorderThickness="2">
<Menu.BitmapEffect>
<DropShadowBitmapEffect />
</Menu.BitmapEffect>
<MenuItem Header="{x:Static properties:Resources.Menu}">
<MenuItem Header="{x:Static properties:Resources.Language}" >
<MenuItem Header="{x:Static properties:Resources.Deutsch}" Name="itemDeutsch" Click="menuItem_Click" />
<MenuItem Header="{x:Static properties:Resources.English}" Name="itemEnglish" Click="menuItem_Click" />
</MenuItem>
<MenuItem Header="{x:Static properties:Resources.Exit}" Click="itemExit_Click"/>
</MenuItem>
</Menu>
所以我认为如果我能以某种方式更新窗口就足够了。
答案 0 :(得分:1)
答案 1 :(得分:1)
我找到了解决方案。我改变了我的数据绑定,看起来像这样:
<MenuItem Header="{Binding Path=Menu, Source={StaticResource Resources}}">
其中“Menu”对应resx文件中的MenuItem名称。