Xaml windows phone 8.1 Sliverlight-如何仅为应用禁用黑白主题

Xaml windows phone 8.1 Sliverlight-如何仅为应用禁用黑白主题,xaml,windows-phone-8,microsoft-metro,Xaml,Windows Phone 8,Microsoft Metro,在windows phone 8中,我们有两种主题,黑色和白色 根据这个主题,在我们的应用程序中,所有控件背景和所有属性都在更改 我的问题是-我正在开发的应用程序是独立于主题的,我希望两种主题颜色都有相同的外观和感觉,无论是黑色还是白色 我尝试的是为所有属性设置颜色-例如,背景、前景等 BorderBrush="{StaticResource WhiteSolidColorBrush}" Foreground="{StaticResource WhiteSolidColorBrush}" 这是

在windows phone 8中,我们有两种主题,黑色和白色

根据这个主题,在我们的应用程序中,所有控件背景和所有属性都在更改

我的问题是-我正在开发的应用程序是独立于主题的,我希望两种主题颜色都有相同的外观和感觉,无论是黑色还是白色

我尝试的是为所有属性设置颜色-例如,背景、前景等

BorderBrush="{StaticResource WhiteSolidColorBrush}" Foreground="{StaticResource WhiteSolidColorBrush}"
这是这里问的同一个问题,但我无法在windows phone 8.1 sliverlight中申请-


这是怎么可能的?

尽管我不确定@JeffWilcox主题管理器有什么问题,因为它看起来非常酷和健壮。对于你的应用程序,仍然可以选择显式覆盖这些资源,这看起来就像他的主题管理器提供了一种更简单的方法


对于Windows Phone 8.1 silverlight,您可以找到与此相关的几乎所有内容,并且实现您似乎需要的内容的过程非常简单。

在silverlight 8.1中,您有两个选项:

1:

正如Chris W.指出的,JeffWilcox主题管理器在运行时覆盖主题资源,但遗憾的是,在Xaml中无法做到这一点

您可以将VS中的设计器设置为您喜欢的主题

2:

另一个是替代所用控件的默认样式。只需复制您使用的每个控件的默认样式,并更改模板中的颜色资源

您可以通过在编辑器中创建副本来访问模板,或者选择大纲中的控件,单击编辑模板>编辑副本,或者直接在SDK文件夹中找到它们:

C:\Program Files x86\Microsoft SDK\Windows Phone\v8.1\Design\System.Windows.xaml


我个人更喜欢第二种方法。听起来需要做很多工作,但实际上您并没有使用这么多控件。最近在一个大型应用程序中使用了它,结果只是覆盖了11个控件模板,并且大部分只是更改了颜色和字体大小。

在应用程序xaml中添加RequestedTheme=Light/Dark,如果你想在所有手机上使用相同的主题,这只适用于windows phone 8.1运行时,不适用于windows phone 8.1 silverlight:我只需要拉出所有控件继承的与主题相关的画笔,以获取它们的颜色,并将它们设置为您希望保持一致的颜色。虽然我忘了资源字典的名字,但可能不难找到。现在我用了这个:@patel嗨,看起来很奇怪。在我的windows phone 8.1 silverlight应用程序中,我没有遇到管理者Jeff Wilcox的任何问题。所以我想知道你在哪里提到在你的项目中使用管理器的代码。请通过编辑问题来发布您的代码,或者请将示例应用程序上载到Dropbox并提供URL。如果您可以根据控件的名称添加覆盖笔刷/颜色,那么为什么要在每个控件的基础上覆盖所有应用程序?因此,当一个或任何控件中的一个属性去寻找类似StaticResource BlahPhonetherSource的属性时,它只是从您定义的下一个逻辑资源继承而来,而不是该名称的默认值,这似乎比根据需要编辑单个控件要简单。因为您无法在Silverlight Phone 7.5更新版本中使用它。至少不是在Xaml中。如果您像主题管理器那样只在代码中执行,那么visual studio designer中将不支持您。您确定我不能在应用程序甚至frameworkelement级别覆盖资源继承方面的系统资源吗?所以我不能直接去一个在主资源字典之前被点击的资源字典,用相同的名字和不同的颜色输入我的画笔,然后覆盖系统主题资源?我在SL工作了一整天,但不承认不是SL电话,所以我不是100%,但我大约98%相信你能做得很好。我不认为这次行动会以任何方式奖励任何赏金,除非是为了技术。我不确定这是否正确。嗯,最早设置笔刷的点是app.xaml,对吗?如果我在那里重写PhoneAccentBrush,它将不会应用于任何地方。当我将默认样式复制到一个新的资源字典并将int合并到app.xaml中时,一切都很好。如果你知道一个更好的手机解决方案,请试一试这会帮我很大的忙,但是到目前为止还没有遇到任何知道解决方案的人,很遗憾。。。