私は自分のアプリケーションを多言語にしました。対応するメニュー項目をクリックすると言語が変わります。これは正常に動作しますが、私の問題は親ウィンドウが言語を変更しないときです(メニューは親ウィンドウにあります)。すべての子ウィンドウが言語を変更します。ウィンドウを強制的に再度ロードする方法はありますか? resx-filesでアプリケーションを実行したところ、menuitemをクリックするとThread.CurrentThread.CurrentCulture
とThread.CurrentThread.CurrentUICulture
が変更されていることが確認されました。wpf更新方法ウィンドウ
編集:私は、多言語の一部を行うために自分自身のクラスを作って、それがこの記事のアプローチから適応したものです
: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>
だから、私は何とかウィンドウを更新することができるならば、それは十分だろうと思います。
バインディングはどのように見えますか? –