【问题标题】:Why UWP ApplicationPageBackgroundThemeBrush is always white?为什么 UWP ApplicationPageBackgroundThemeBrush 总是白色的?
【发布时间】:2016-03-24 17:08:06
【问题描述】:

我是初学者。我有以下最简单的代码:

<Page
    x:Class="ClientFramework.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ClientFramework"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    </Grid>
</Page>

我在 Windows mobile 10 模拟器中对其进行了测试。无论我如何更改操作系统主题,深色或浅色,我的应用程序的背景始终是白色的。那么设置依赖于主题的应用范围颜色的正确方法是什么?

【问题讨论】:

  • 看看 App.xaml,你有可能在那里设置了RequestedTheme=Light
  • @Romasz 完全正确。我自己发布了答案。谢谢。

标签: xaml win-universal-app windows-10


【解决方案1】:

我最终通过谷歌搜索找到了问题所在。该问题是由VS2015项目模板引起的。在 app.xaml 中有一行设置 RequestedTheme="Light"。我删除了这条线,现在一切都很好。浪费了我2个小时。希望您能看到我的回答,从而节省时间。

https://social.msdn.microsoft.com/Forums/vstudio/en-US/c12cdba4-093f-474a-9d21-6e447aaa2adf/uwp-applicationpagebackgroundthemebrush-is-always-white?forum=wpdevelop

【讨论】:

    【解决方案2】:

    &lt;Grid&gt;元素上设置背景,像这样:

    <Grid Background="Blue"></Grid>
    

    对于前景文本,您可以在 App.Xaml 中设置默认样式,如下所示:

    <App.Resources>
      <Style TargetType="TextBox">
        <Setter Property="Foreground" Value="Red" />
      </Style>
    </App Resources>
    

    只要您在元素名称而不是命名事物上设置样式,该样式就会应用于该类型的所有元素。 您还可以继承样式以重复常用样式。

    【讨论】:

    • 我刚刚编辑了我的代码。我实际上已经设置了背景。还是没有效果。
    • 这确实很奇怪。如果您在网格上设置背景,它将覆盖 App.xaml 中设置的任何默认值。
    • 这很奇怪。我在模拟器和真手机上测试过。
    猜你喜欢
    • 2017-07-27
    • 1970-01-01
    • 2018-12-10
    • 2012-06-03
    • 2012-08-27
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多