【问题标题】:windows phone 8.1 Sliverlight - how to disable black and white theme for app onlywindows phone 8.1 Silverlight - 如何仅为应用禁用黑白主题
【发布时间】:2015-01-16 19:52:25
【问题描述】:

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

根据这个主题,在我们的应用中,所有控件背景和所有属性都在变化..

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

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

BorderBrush="{StaticResource WhiteSolidColorBrush}" Foreground="{StaticResource WhiteSolidColorBrush}"

这里问的是同一个问题,但我无法在 windows phone 8.1 sliverlight 中申请- Windows phone 8 How to be always on one theme even if phone's theme changed

这怎么可能?

【问题讨论】:

  • 如果您想在所有手机上使用相同的主题,请在应用程序 xaml 中添加 RequestedTheme="Light/Dark"
  • 这仅适用于 windows phone 8.1 运行时,不适用于 windows phone 8.1 silverlight :)
  • 我只是去拉出所有控件继承的主题相关画笔以获取它们的颜色并将它们设置为您想要保持一致的颜色。我忘记了它们所在的资源字典名称,但可能并不难找到。
  • @patel 嗨,看起来很奇怪。在我的 windows phone 8.1 silverlight 应用程序中,我没有遇到 Jeff Wilcox thememanager 的任何问题。所以我想知道你在哪里提到在你的项目中使用thememanager 的代码。请通过编辑问题发布您的代码,或将示例应用程序上传到 Dropbox 并提供 URL。

标签: xaml windows-phone-8 microsoft-metro


【解决方案1】:

虽然我不确定您在使用 @JeffWilcox 主题管理器时遇到了什么问题,因为它看起来非常酷且强大。仍然可以选择为您的应用显式覆盖这些资源(看起来他的主题管理器只是提供了一种更简单的方法。)

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

【讨论】:

    【解决方案2】:

    在 Silverlight 8.1 中有两种选择:

    1:

    就像 Chris W. 指出的那样,JeffWilcox 主题管理器会在运行时覆盖主题资源(遗憾的是,在 Xaml 中无法做到这一点)。

    你可以在 VS 中将 Designer 设置为你喜欢的 Theme。

    2:

    另一种是覆盖您使用的控件的默认样式。只需复制您使用的每个控件的默认样式并更改模板中的颜色资源即可。

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

    C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.1\Design\System.Windows.xaml

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

    【讨论】:

    • 当您可以根据这些控件所绑定的名称来覆盖画笔/颜色时,为什么要在每个控件的基础上覆盖所有这些?因此,当说控件的一个(或任何)中的一个属性去寻找 StaticResource BlahPhoneThemeResource 它只是继承自您定义的下一个逻辑而不是该名称的默认值时,似乎比编辑单个更简单根据需要进行控制。
    • 因为您不能在 Silverlight 中(电话 7.5 及更高版本)。至少在 Xaml 中没有。如果您只是像主题管理器那样在代码中执行此操作,那么您将无法获得 Visual Studio 设计器的支持。
    • 您确定我不能在应用程序甚至框架元素级别覆盖资源继承的系统资源吗?所以我不能只去一个在主资源字典之前被点击的资源字典,用相同的名字和不同的颜色等输入我的画笔并覆盖系统主题资源吗?我整天都在 SL 工作,但不可否认,我不是 SL 手机,所以我不是 100%,但我有 98% 的把握你可以做得很好。我不认为这个 OP 会奖励任何赏金,除了技术。参数。我不确定这是否正确。
    • 嗯,最早设置画笔的点应该是 app.xaml,对吧?如果我在那里覆盖 PhoneAccentBrush,它将不会应用到任何地方。当我只是将默认样式复制到新的资源字典中并将 int 合并到 app.xaml 中时,一切都很好。如果您知道可以在手机上使用的更好的解决方案,请试一试。 :) 对我有很大帮助,但遗憾的是,到目前为止还没有遇到任何知道解决方案的人......
    猜你喜欢
    • 2014-09-07
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 2015-04-15
    • 2016-03-04
    相关资源
    最近更新 更多