当用户从Windows Phone中的设置页面中选择ResourceDictionary时,切换ResourceDictionary

时间:2012-05-09 20:53:23

标签: c# windows-phone-7 xaml

我在Windows Phone应用程序中创建了一些ResourceDictionaries,并在App.xaml.cs文件中添加了此代码以加载主题:

private void LoadDictionary()
{
    var dictionaries = Resources.MergedDictionaries;
    dictionaries.Clear();
    string source = String.Format("/MyApp;component/Themes/Theme2.xaml");
    var themeStyles = new ResourceDictionary { Source = new Uri(source, UriKind.Relative) };
    dictionaries.Add(themeStyles);
}

当我更改代码并重新编译它时这很好用但是我想要的并且无法弄清楚的是;如何在用户从设置页面中选择主题时加载字典?

我在XAML中将样式设置为TextBox的方式如下:

<TextBox x:Name="Count" Grid.Column="1" TextAlignment="Center" InputScope="Number">
  <TextBox.Style>
      <StaticResource ResourceKey="InputTextBox" />
  </TextBox.Style>
</TextBox>

1 个答案:

答案 0 :(得分:0)

您通常会使用DynamicResource执行此操作(请参阅此文章WPF Switch Color Theme),但不幸的是,我们在Windows Phone中没有那么奢侈。

我唯一的建议是使用一个Global类,其中包含要交换的内容的属性,然后通过SetTheme()方法手动处理交换。