【问题标题】:Changing the background color of a metro style app has no effect更改 Metro 风格应用的背景颜色无效
【发布时间】:2012-12-17 19:01:32
【问题描述】:

我正在尝试将我在 Visual Studio (XAML) 中的应用程序的背景颜色更改为白色(或 ApplicationPageBackgroundTheme / 或其他任何名称),但它不起作用。当我调试时,它只是显示黑色背景。

当我转到“设备”窗格并选择默认颜色主题为“浅色”时,它会使屏幕上的所有内容变为白色,甚至是文本和背景。

当我在 xaml 中更改颜色的背景时,在运行时它会变回黑色!

我已经搜索过,但没有找到任何信息。这是一个已知的错误?这是以前从未发生过的。我正在使用 Visual Studio 2012 Ultimate。

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

    <Grid Style="{StaticResource LayoutRootStyle}" Background="White">
        <Grid.RowDefinitions>
            <RowDefinition Height="140" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <Button x:Name="backButton" Click="GoBack" IsEnabled="False" Style="{StaticResource BackButtonStyle}" />
            <TextBlock x:Name="pageTitle" Grid.Column="1" Text="gfdgfdg" Style="{StaticResource PageHeaderTextStyle}" />
        </Grid>
    </Grid>
</Page>

【问题讨论】:

    标签: c# xaml windows-8 visual-studio-2012 microsoft-metro


    【解决方案1】:

    如果没有更多的应用程序/样式,很难确切知道发生了什么,但更改主题的一种简单方法是使用Application 对象的RequestedTheme property

    例如,在 App.xaml 中,将 RequestedTheme="Light" 设置为 Application 元素的属性:

    <Application
        x:Class="App1.App"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:App1"
        RequestedTheme="Light">
    

    这会很有帮助,因为 Light 主题会影响所有页面并自动更改文本/按钮/等。如果您只将背景颜色设为白色,则变为黑色而不是 所有内容都是白色的。

    本演练介绍了这一点以及如何用您自己的自定义样式覆盖默认样式:

    顺便说一句,设备窗格不会更改应用程序设置,而是在设计视图中模拟应用程序在各种设备功能/设置(屏幕、主题等)下的显示方式。因此,虽然它在设计器中可能看起来像一个主题,当你实际运行它时,它将恢复到系统/XAML/代码产生的任何结果。

    【讨论】:

    • 谢谢。真的没有其他东西可以给你看,我的意思是我在这里粘贴的是我拥有的所有代码,基于“空白网格”模板。不知道为什么它甚至不允许我改变任何颜色。
    • 自从您前几天回答了我的问题以来,我遇到了无数关于颜色的问题。基本场景:新建项目 > 选择空白网格 > 添加按钮 > 在 XAML 和调试中更改背景 =“#111111” - 按钮最终完全透明。我最终决定卸载然后重新安装和更新 Visual Studio,我根本没有遇到任何问题。不确定到底是什么问题,但很高兴它再次正常工作。
    【解决方案2】:

    如果我没记错的话,您可以在第一个选项卡中签入清单。那里应该有你的选择。

    【讨论】:

    • 我忘记了,但它仍然变回黑色!在清单中,在第一个选项卡中,我将前景颜色更改为黑色,将背景颜色更改为白色,一切仍然是黑色 ;-( 我真的不认为宇宙希望我为 windows 商店制作应用程序哈哈。我还有其他应用程序已经制作了,但我想先发布这个!您是否也有在最后一刻突然出现的奇怪问题?哦,顺便说一句
    • Metro 应用程序总是有问题。我有一半时间在寻找答案。嗯,你有没有尝试过自己的风格?我现在内存不足,所以我无法确认这个 atm。
    • 是的,我确实尝试过自己的风格。这太奇怪了。我宁愿只制作桌面应用程序,但不幸的是,这显然不是个人帐户的选择。无论如何,谢谢,但如果有任何变化,我会保持更新。
    【解决方案3】:

    页面的背景颜色将不可见,因为根 Grid 是不透明的,并且默认将其颜色设置为黑色,您可以将 Grid 的颜色设置为透明的,或者应用网格为白色,我看到您已经将颜色应用于网格,我建议您退出网格的样式属性,看看是否有帮助。

    【讨论】:

      【解决方案4】:

      我找到了另一种方式。

      如果单击 XAML 代码中的网格项,将其选中。然后查看属性窗口,展开Brush 属性,您将看到“Background”项。点击背景属性右侧的黑色小方块,会弹出一个菜单。单击“Convert to Local value”。这将使您能够使用下面的可用项目更改背景。我得到了从绿色到黄色的渐变填充!阴森! :-)

      【讨论】:

        猜你喜欢
        • 2018-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-17
        • 1970-01-01
        • 2013-08-08
        相关资源
        最近更新 更多