2012-08-11 87 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

相關問題