2

我在我的 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>
4

1 回答 1

0

您通常会使用 DynamicResource 来执行此操作(请参阅这篇文章WPF 切换颜色主题),但不幸的是,我们在 Windows Phone 中没有这种奢侈。

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

于 2012-05-11T21:46:40.813 回答