2012-08-11 53 views
4

我有一个奇怪的问题。我无法在地铁应用程序中为我的页面设置背景。 下面是我的XAML结构如何在城域应用程序中设置页面背景

<Page Background="White"> 
    <ListView Background="Red"> 

    </ListView> 
</Page> 

的一个简单的观点的问题是,页面的背景是黑色的。所以我有在黑色背景上设置的红色矩形(ListView区域)。我希望我的页面是白色的。我看到了一些例子,看起来我做得很好。我也尝试用画笔,但结果相同。

回答

6

如果您希望您的应用在所有页面上都有白色背景,那么最简单的方法是在App.xaml文件中设置Light上的RequestedTheme。这不仅会给你一个白色的背景,但它也会自动改变所有其他颜色,如前景色(对于文本等)默认为黑色。

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

对于单页我一直使用一个网格,在页rootcontainer和工作的罚款:

<common:LayoutAwarePage 
    x:Name="pageRoot" 
    ... 
    > 

    <Grid Background="White"> 

请注意,如果你想使用图片作为背景,而不是一种颜色的,您必须使用附加属性:

<Grid> 
    <Grid.Background> 
     <ImageBrush x:Name="backgroundGrid" ImageSource="/Assets/Paper.jpg" /> 
    </Grid.Background> 
+0

thx中描述和可用。但由VS创建的模板没有标记它有我测试了不同的组合,但仍然无法更改背景。你需要更多的代码吗? – Fixus 2012-08-13 15:55:17

+1

好吧,我找到了一个解决方案。我已经创建了GRID,它是在全高和全宽上拉伸的主根元素。我为该网格设置了背景,并且工作正常 – Fixus 2012-08-13 15:58:53

+3

应用程序标记位于App.xaml中 – Bart 2012-08-13 22:06:31

4

我认为你遇到的问题是页面的默认样式正在覆盖你设置背景颜色的尝试。

如果您查看文件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部分中的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> 

希望有所帮助。

+0

它不起作用。我更改风格xaml并添加到页面xaml,它不起作用:/不知道为什么 – Fixus 2012-08-13 15:54:33

+0

找到解决方案。在上面的回答中注释 – Fixus 2012-08-13 15:59:10

+0

作为参考,XAML主题在https://msdn.microsoft.com/en-us/library/windows/apps/dn518235.aspx – 2015-08-19 19:45:47

相关问题