Xaml 如何在metro应用程序中设置页面背景
我有个奇怪的问题。我无法在metro应用程序中为我的页面设置背景。 下面是我的xaml结构的简单视图Xaml 如何在metro应用程序中设置页面背景,xaml,windows-8,microsoft-metro,winrt-xaml,Xaml,Windows 8,Microsoft Metro,Winrt Xaml,我有个奇怪的问题。我无法在metro应用程序中为我的页面设置背景。 下面是我的xaml结构的简单视图 <Page Background="White"> <ListView Background="Red"> </ListView> </Page> 问题是页面的背景是黑色的。所以我在黑色背景上设置了红色矩形(ListView区域)。我希望我的页面是白色的。我看到的例子很少,似乎我做得很好。我也尝试过使用画笔,但结果相同。我认
<Page Background="White">
<ListView Background="Red">
</ListView>
</Page>
问题是页面的背景是黑色的。所以我在黑色背景上设置了红色矩形(ListView区域)。我希望我的页面是白色的。我看到的例子很少,似乎我做得很好。我也尝试过使用画笔,但结果相同。我认为您遇到的问题是页面的默认样式覆盖了您设置背景色的尝试 如果查看文件StandardStyles.xaml,它包含一个LayoutRootStyle(在文件的末尾)。如果将默认值更改为十六进制颜色值(例如,#FFFF0000将显示红色),则应用程序的背景将相应更改。这是一个简单的方法来做你想做的,但可能不是一个最佳实践
<Style x:Key="LayoutRootStyle" TargetType="Panel">
<Setter Property="Background" Value="{StaticResource ApplicationPageBackgroundThemeBrush}"/>
<Setter Property="ChildrenTransitions">
<Setter.Value>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Setter.Value>
</Setter>
</Style>
或者,您可以为根网格元素设置背景,这将为您提供更细粒度的控制。或者,通过将规则复制到页面的page.Resources节中,然后修改后台setter的值,可以创建一个覆盖页面的page.Resources节中LayoutRootStyle的自定义样式
下面是它的外观:
<Page.Resources>
<Style x:Key="LayoutRootStyle" TargetType="Panel">
<Setter Property="Background" Value="#FFFF0000"/>
<Setter Property="ChildrenTransitions">
<Setter.Value>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Setter.Value>
</Setter>
</Style>
</Page.Resources>
希望这能有所帮助。如果你希望你的应用程序在所有页面上都有白色背景,那么实现这一点的最简单方法是在app.xaml文件中将RequestedTheme设置为亮起。这不仅会给你一个白色的背景,但它会自动改变所有其他颜色,如前景颜色(文本等)将默认为黑色
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
...
RequestedTheme="Light">
对于单个页面,我总是在页面中使用网格作为根容器,这很好:
<common:LayoutAwarePage
x:Name="pageRoot"
...
>
<Grid Background="White">
请注意,如果要使用图像作为背景而不是颜色,则必须使用附加属性:
<Grid>
<Grid.Background>
<ImageBrush x:Name="backgroundGrid" ImageSource="/Assets/Paper.jpg" />
</Grid.Background>
它不起作用。我更改了样式xaml并将其添加到页面xaml,但它不起作用:/dunno whyfind solution。上面的回答中的注释中描述了XAML主题以供参考,XAML主题已在thx上描述并提供。但是VS创建的模板没有标签,我测试了不同的组合,仍然无法更改背景。你需要我提供更多的代码吗?好的,我找到了一个解决方案。我已经创建了网格,它是在全高和全宽上拉伸的主要根元素。我已经为该网格设置了背景,它可以正常工作。应用程序标记放在App.xaml中