3

我正在开发一个 WP8 应用程序,我想知道为我的应用程序实现颜色主题的正确方法是什么。

目前,我正在更改此处描述的手机主题资源,但是我想知道这是否有我应该知道的任何副作用?

例如:如果我更改 的颜色PhoneBackgroundBrush,是否意味着我将更改每个应用程序和手机本身的背景颜色?或者,更改是否仅适用于当前应用程序范围?

我像这样更改主题资源:

(App.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush).Color = Colors.White;
4

2 回答 2

2

想象一下,如果这些实例的单个实例在应用程序之间共享,你可能会用类似的东西造成一些真正的损害......

您只是更改当前应用程序的资源。您已被沙盒化且安全

于 2013-09-05T12:54:44.207 回答
1

您使用的代码

(App.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush).Color = Colors.White;

将更改应用程序页面和控件的默认颜色。不是任何其他应用程序。

这些设置会在应用程序被激活时应用到它。因此,默认情况下,每个应用程序都有一个 PhoneBackgroundBrush,它是手机的默认主题。

但是,如果您的应用程序包含多个不同颜色的页面,那么使用单独的 Grid 总是有利的

<Grid x:Name="LayoutRoot" Background="Red"></Grid>

除了提供

App.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush).Color = Colors.White

对于常见的应用程序背景颜色:)

Windows Phone 主题中提到的所有属性

用于特定应用。您可以从中选择以下任何一种作为全局应用程序背景颜色/主题。

于 2013-09-05T12:15:33.540 回答