如何申请Windows Phone主题资源

本主题提供有关如何将 Windows Phone 主题资源添加到您的应用程序的信息。将涵盖以下情况:
使用 Windows Phone 画笔资源
对控件应用更改字体和字体大小
Windows Phone 的文本样式应用于控件
本主题的目的是帮助您熟悉这些资源绑定到用户界面元素 (如一个矩形和一个 TextBlock 控件的过程。本主题还说明了对您的应用程序的全系统主题变化的影响。
重要注意事项:
当一个用户可以在设备上的设置菜单中的一个全系统主题时,将更改只有在您的应用程序中的颜色。字体和控制尺寸不会改变。例如,如果用户,口音颜色设置为紫色在主题设置页面上,只有在用户界面元素,使用适当的资源画笔进行配置将更改为您的应用程序中的紫色。这种行为,将会进一步在下面的步骤中的说明。此外,关于在本主题中,包括定义),讨论的主题资源的更多信息,请参阅 Windows Phone 为主题的资源。
应用主题的资源

要应用主题的资源:

通过选择该文件创建一个新项目 |新项目的菜单命令。
将显示新建项目窗口。展开 Visual C# 模板,然后选择 Silverlight 的 Windows Phone 模板。
选择 Windows Phone 应用程序的模板。填写所需的项目名称。
MainPage.xaml,在 XAML 代码中,添加下面的代码在名为 ContentPanel 的网格标记内。

<Rectangle Height="100" HorizontalAlignment="Left" Margin="12,33,0,0" Name="rectangle1" Stroke="Black" StrokeThickness="1" VerticalAlignment="Top" Width="200" Fill="{StaticResource PhoneAccentBrush}" />

注意:
上面的代码页的左上部分创建一个矩形。请注意的填充属性以及如何使用 StaticResource 标记来指定资源画笔命名为 PhoneAccentBrush。此特定的画笔将允许的矩形颜色全系统主题变化作出响应。例如,如果用户修改手机设置菜单中的口音颜色,该矩形将更改为该颜色。
下一步,添加下面的代码在名为 ContentPanel 的网格标记内。

<TextBlock Height="45" HorizontalAlignment="Left" Margin="20,154,0,0" Name="textBlock1" Text="TextBlock" VerticalAlignment="Top" Width="213" FontFamily="{StaticResource PhoneFontFamilySemiLight}" FontSize="{StaticResource PhoneFontSizeLarge}"/>

注意:
此代码创建一个 TextBlock 控件,它位于下面的矩形。StaticResource 标记已应用到 FontFamily 和字号属性。对字体设置 TextBlock 文本,当前设置为"TextBlock,"PhoneFontFamilySemiLight (Segoe WP SemiLight) 和字体大小 PhoneFontSizeLarge (24pt)。有关资源定义的详细信息,请参阅 Windows Phone 为主题的资源。
最后,添加下面的代码在名为 ContentPanel 的网格标记内。

<TextBlock Height="28" HorizontalAlignment="Left" Margin="21,232,0,0" Name="textBlock2" Text="TextBlock" VerticalAlignment="Top" Width="139" Style="{StaticResource PhoneTextAccentStyle}"/>

注意:
此代码创建第二个 TextBlock 并应用样式资源,PhoneTextAccentStyle。此主题资源适用 (PhoneFontFamilySemiBold) 的字体、 字体大小 (PhoneFontSizeNormal) 和前景 (PhoneAccentBrush)。电话的口音画笔将导致 TextBlock 文本颜色更改时启动一个全系统的主题。
通过选择调试运行该应用程序 |开始调试菜单命令。这将打开仿真程序窗口,并启动该应用程序。您应该看到该矩形和在屏幕上的两个 TextBlock 控件。该矩形应该有一种颜色相匹配的当前的系统主题和两个具有不同的字体和字体大小的应用的文本块。另外,请注意二 TextBlock 具有匹配的当前的系统主题,如 PhoneAccentBrush 被应用到前台的文本颜色。请尝试更改系统主题电话时,修改的背景色和强调文字颜色,并观察颜色修改的效果。
注意:
您还可能遇到情况下,您需要执行动态的操作,例如,动态地更改颜色。下面的代码提供了有关如何动态地分配资源的一个示例:

Color  backgroundColor = (Color)Application.Current.Resources["PhoneBackgroundColor"];

本文章为本人学习wp7帮助文档翻译后的文章。

原文地址:https://www.cnblogs.com/fxiaoquan/p/2588359.html