2016-02-20 55 views
0

我有一個多語言應用程序,其中兩種樣式分別爲RtlStylesLtrStyles,用於RTL和LTR語言。 我定義我的風格的App.xaml像這樣:在UWP應用程序中使用多個主題

<Application.Resources> 
    <ResourceDictionary Source="Styles/RtlStyles.xaml"></ResourceDictionary> 
</Application.Resources> 

但我的問題是我怎麼可以在代碼中改變風格LtrStyles後面?

回答

0

感謝@Gaurav我對他的回答有點更新。首先,我寫了一個方法,選擇主題:

public static void ChooseTheme() 
{ 
     ResourceDictionary rd; 
     if (CultureInfo.CurrentCulture.Name == "en-US") 
      rd = new ResourceDictionary 
      { 
       Source = new Uri("ms-appx:///Styles/LtrStyles.xaml", UriKind.Absolute) 
      }; 
     else 
      rd = new ResourceDictionary 
      { 
       Source = new Uri("ms-appx:///Styles/RtlStyles.xaml", UriKind.Absolute) 
      }; 

     Application.Current.Resources = rd; 
} 

,然後我們可以到處(例如Page_Tapped事件佈局)使用它。

1

在App.OnLaunched(),你可以嘗試這樣的事:

if (someCondition) 
    { 
     var rd = new ResourceDictionary 
     { 
      Source = new Uri("ms-appx:///Styles/RtlStyles.xaml", UriKind.Absolute) 
     }; 
     Application.Current.Resources.MergedDictionaries.Add(rd); 
    } 
+0

謝謝,該解決方案沒有錯誤,但不工作呢! –