2011-10-18 5 views
1

私はWPFウィンドウを持っており、多くのラベルはローカライズされた文字列を使用しています。たとえば、次のように次のように文字列クラスのWPFウィンドウですべてのローカライズされた文字列を再読み込みする方法は?

<Window x:Class="CoHOLauncher.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:s="clr-namespace:System;assembly=mscorlib" 
     xmlns:l="clr-namespace:MyNameSpace" 
     xmlns:loc="clr-namespace:MyNameSpace.Localization"> 

<Label Grid.Column="0" Content="{x:Static loc:Strings.MainWindowSize}" HorizontalAlignment="Right"/> 

詳細:

public class Strings { 
     private static global::System.Globalization.CultureInfo resourceCulture; 
     public static global::System.Resources.ResourceManager ResourceManager { 
      get { 
       if (object.ReferenceEquals(resourceMan, null)) { 
        global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MyNameSpace.Localization.Strings", typeof(Strings).Assembly); 
        resourceMan = temp; 
       } 
       return resourceMan; 
      } 
     } 

    public static global::System.Globalization.CultureInfo Culture { 
     get { 
      return resourceCulture; 
     } 
     set { 
      resourceCulture = value; 
     } 
    } 

     public static string MainWindowSize { 
      get { 
       return ResourceManager.GetString("MainWindowSize", resourceCulture); 
      } 
     } 
} 

私はすべての文字列をリロードするWPFを強制する方法を、実行時にStrings.Cultureを変更した場合は?

すべての文字列は、ローカライズされたリソースファイルから生成されたローカライゼーションサテライトDLLアセンブリに格納されます。

答えて

2

バインディングソースをx:Staticの値から変更し、値の変更通知を提供するプロパティを使用してローカライズされた文字列を何とか公開する必要があります。

関連する問題