0

当我在 Windows 8 商店应用程序上创建一个新页面时,它具有我想要更改的默认颜色。如果我删除页面上的所有元素并更改背景颜色,它就没有效果。在下面的示例中,我将背景设置为粉红色。我怎样才能使这种颜色生效?(我还从 App.xaml 中删除了所有内容)

<common:LayoutAwarePage
x:Name="pageRoot"
x:Class="DemoWindows8StoreApp.BasicPage3"
DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:DemoWindows8StoreApp"
xmlns:common="using:DemoWindows8StoreApp.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Background="Pink"
mc:Ignorable="d">

4

2 回答 2

0

更新 1

根据Control.Background

每个控件可能会根据其可视化模板以不同的方式应用此属性。此属性仅影响其模板使用 Background 属性作为参数的控件。在其他控件上,此属性无效。有关可视模板的详细信息,请参阅 Template 属性。

所以有可能Page's 的模板不使用Background属性作为参数。


从项目中删除任何内容以更改颜色。转到 Common\StandardStyles.xaml。搜索“LayoutRootStyle”。你会发现风格Panel。在那里改变Background。请注意,这将影响到项目中的所有页面。如果您想为不同的页面使用不同的颜色,那么您可以为每个页面创建单独的样式。

<Style x:Key="LayoutRootStyle" TargetType="Panel">
    <Setter Property="Background" Value="Pink"/>
    <Setter Property="ChildrenTransitions">
        <Setter.Value>
            <TransitionCollection>
                <EntranceThemeTransition/>
            </TransitionCollection>
        </Setter.Value>
    </Setter>
</Style>
于 2013-09-23T08:17:01.897 回答
0

最好遵循默认模板,而不是设置页面的背景,但对于根元素(通常是网格),我不是 100% 确定为什么该页面上的背景不起作用(我怀疑控制模板)。

于 2013-09-23T08:18:25.127 回答