2011-10-18 37 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); 
      } 
     } 
} 

如果我在運行時改變Strings.Culture,如何強制WPF重新加載所有字符串?

我將所有字符串存儲在本地化衛星DLL程序集中,這些程序集是從本地化資源文件生成的。

回答

2

您必須更改x:Static值的綁定源,並以某種方式通過提供值更改通知的屬性公開本地化的字符串。

相關問題