【发布时间】:2011-01-11 21:26:27
【问题描述】:
我已将我的应用程序设为多语言。当您单击相应的菜单项时,它会更改其语言。这很好用,但是当我的父窗口没有改变它的语言(菜单在父窗口中)时,我的问题就出现了。所有子窗口都会更改其语言。有没有办法强制窗口再次加载?我已经使用 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>
所以我认为如果我能够以某种方式更新窗口就足够了。
【问题讨论】:
-
你的绑定是什么样的?
标签: wpf multilingual