我想为我的Windows Phone 7应用程序定义一个主题,无论“设置”手机菜单设置的系统主题如何,都可以在应用程序启动时应用。怎么办呢?
我在MSDN上看到Fill =“{StaticResource PhoneAccentBrush}”允许使用该画笔的控件响应系统范围的主题更改。我怎么能做同样的事情:允许控件获取它的画笔,而不是从系统设置,而是从我的应用程序设置?
我应该在哪里设置这些设置,以便拥有一个我可以从我的应用程序中的任何位置访问的样式设置文件?
答案 0 :(得分:4)
Silverlight中没有特定于主题的API。您拥有的是一个或多个资源字典,可用于定义要应用于控件的一组样式。
在Theme1.xaml文件中:
<Style x:Key="HeadingStyle" TargetType="{x:Type Label}">
<Setter Property="Foreground" Value="Black"/>
</Style>
在Theme2.xaml文件中:
<Style x:Key="HeadingStyle" TargetType="{x:Type Label}">
<Setter Property="Foreground" Value="Red"/>
</Style>
在App.xaml中(默认主题或引用default.xaml文件):
<Application.Resources>
<Style x:Key="HeadingStyle" TargetType="{x:Type Label}">
<Setter Property="Foreground" Value="blue"/>
</Style>
</Application.Resources>
要更改当前的“主题”:
Application.Current.Resources = Application.LoadComponent(new Uri("Theme2.xaml", UriKind.RelativeOrAbsolute));
我现在没有安装RTM工具,因此我无法测试此代码。