更改metro风格应用程序的背景颜色无效

时间:2012-12-17 19:01:33

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

我正在尝试将我的应用程序在Visual Studio(XAML)中的背景颜色更改为White(或者,ApplicationPageBackgroundTheme /或其他所谓的)并且它不起作用。当我调试时,它只显示黑色背景。

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

当我更改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>

enter image description here

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

如果没有更多的应用/样式,很难确切地知道发生了什么,但更改主题的简单方法是使用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 /代码的结果。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我发现了一种不同的方式。

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